Program to compare Idocs

Hi Experts,
Does anyone know a program/ transaction to compare two IDOC's of same Idoc type.
Please help.
Regards,
Kiran

Hi Kiran,
Check this link..
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/idoc%2bdiff%2b-%2breport%2bto%2bcompare%2bidoc%2bmessages
this might be useful.
i don't think there is any standard transaction for this.
check tcode WE60 or area menu tcode WEDI for all IDOC related transactions
Sachin

Similar Messages

  • How to find out the Trigeering program of an IDOC

    How to find out the Trigeering program of an IDOC ?
    Thank U

    sse the FUnction module ..MASTER_IDOC_DISTRIBUTE..if it is used zreport or program
    that means the message type used in the program are manually triggered.
    Prabhudas

  • RSETESTD program to purge IDoc entries won't delete certain IDoc records

    Hello experts,
    I am in the mist of purging the IDoc entries in my system by using RSETESTD (WE11) program to delete the IDoc entries.
    As far as I know, this program will delete the IDoc entries regardless of the status.
    While doing the testing, I find out that when I filter the program to delete IDoc entries from certain date range (which results in WE02 shows there is an IDoc entries with the status 51 and 53 in the range that I selected), the program only select and will run the deletion for IDoc with status 51, but not 53.
    It will show that "No IDoc is selected" when I tried to delete IDoc with status 53. I double check and I found out that in that date range that I selected from WE02 transaction, there is around 17 of IDoc records with status 53, which is not deleted/detected when I want to delete it using RSETESTD.
    Can someone help to enlighten me on why this behaviour is happening please? Are there certain type of IDoc records that this program can't delete? I find out in other system, I have no problem to delete IDoc with status 53 records.
    Thanks and Regards,
    Shakir

    check if the change date is outside your entered date range

  • Is there any standard program to parse idocs into horizontal structure

    Could anybody please let me know if there is any SAP program to parse IDOCS into horizontal structures. We need to generate a flat file within SAP using IDOCS.
    Your earlier response is much appreciated.
    Regards
    Kasi

    Hi Kasi,
    Please check this FM EDI_IDOC_PARSER.
    Hope this will help.
    Regards,
    Ferry Lianto

  • Program that generates idoc in ale/edi

    friends can  you please tell  which  program creates an idoc or  how  are idocs generated  while  customizing ale and edi ., in which step?

    Hi
    The following code is used to create and populate IDOC
    REPORT ZALE_USR.
    CONSTANTS: C_DOCTYP TYPE EDIDC-IDOCTP VALUE 'ZUSRDET01',Idoctype
    C_SEGNAM TYPE EDIDD-SEGNAM VALUE 'Z1USRDET01', segmenttype
    C_MESTYP TYPE EDIDC-MESTYP VALUE 'ZUSRDET'. message type
    DATA: IT_ZUSR02 TYPE USR02 OCCURS 10,
    IT_EDIDC TYPE EDIDC OCCURS 0,
    IT_EDIDD TYPE EDIDD OCCURS 0,
    WA_ZUSR02 TYPE USR02,
    WA_EDIDC TYPE EDIDC,
    WA_EDIDD TYPE EDIDD,
    WA_Z1USRDET01 TYPE Z1USRDET01,
    V_OCCMAX TYPE IDOCSYN-OCCMAX,
    V_NBSEG TYPE I.
    CLEAR WA_ZUSR02.
    CLEAR WA_EDIDC.
    Save the message type and the basic IDoc type in the control segment.
    MOVE C_MESTYP TO WA_EDIDC-MESTYP.
    MOVE C_DOCTYP TO WA_EDIDC-IDOCTP.
    Retrieve the maximum number of segments in the basic IDoc type.
    SELECT MIN( OCCMAX ) FROM IDOCSYN INTO V_OCCMAX WHERE IDOCTYP EQ C_DOCTYP AND SEGTYP EQ C_SEGNAM.
    Save the whole USR02 table content in the IT_ZUSR02 internal table.
    SELECT * FROM USR02 INTO CORRESPONDING FIELDS OF TABLE IT_ZUSR02.
    Create a data segment for each line of IT_ZUSR02.
    LOOP AT IT_ZUSR02 INTO WA_ZUSR02 .
    MOVE-CORRESPONDING WA_ZUSR02 TO WA_Z1USRDET01.
    CLEAR WA_EDIDD.
    MOVE C_SEGNAM TO WA_EDIDD-SEGNAM.
    MOVE WA_Z1USRDET01 TO WA_EDIDD-SDATA.
    APPEND WA_EDIDD TO IT_EDIDD.
    CLEAR WA_ZUSR02.
    CLEAR WA_Z1USRDET01.
    ENDLOOP.
    Count the number of data segments.
    DESCRIBE TABLE IT_EDIDD LINES V_NBSEG.
    If the number of data segments exceeds the maximum allowed number,then display an error message.
    IF V_NBSEG GT V_OCCMAX.
    WRITE:/ 'ERROR'.
    ENDIF.
    CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
    EXPORTING
    master_idoc_control = WA_EDIDC
    OBJ_TYPE = ''
    CHNUM = ''
    tables
    communication_idoc_control = IT_EDIDC
    master_idoc_data = IT_EDIDD
    EXCEPTIONS
    ERROR_IN_IDOC_CONTROL = 1
    ERROR_WRITING_IDOC_STATUS = 2
    ERROR_IN_IDOC_DATA = 3
    SENDING_LOGICAL_SYSTEM_UNKNOWN = 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.
    Reward points for helpful ans
    Regards
    Aarti

  • Find program for an IDOC type

    Hello Gurus,
    I need to identify what program or transaction does a Particular IDOC type is associated to.
    How do I find Program related to IDOC type?
    How many ways to find such link?
    Regards,
    Abhishek.

    Hello Gurus,
    My scenario is to find the easiest way to search for the Link between and IDOC type (Outbound idoc) to a program.
    I have list of all the IDOC type now I need to find from where these IDOC´s are triggering from?
    Regards,
    Abhishek...

  • Program to compare versions

    Hi!
    Theer is some migration work goin on from 4.7 to ECC 5.0 version.
    Can anybody tell me some sap standard program or Z-program. which compares the versions of no. of programs between different clients in single run.
    Thanks in Advance,
    Harkamal

    Hi,
    So you don't want the normal functionality in SE38 (i.e. Utilities>Versions>Version management then button remote comparison Shift+F8)
    You want somehow check all the version numbers of all custom programs?
    Can't you somehow see this in the transport management (STMS)
    Or else try to find out in which table the version numbers are stored.
    Kind regards, Rob Dielemans

  • Program to Compare SAP Scripts

    Hi,
    Please let me know the Program to compare all the attributes like Window, Paragraph formats along with the Text elements included in the Window of SAP Script.
    When I change a SAP Script, an entry with the form name is included in the Transport Request. Please let me know how to find the language of the Script included in the respective Transport Request.
    Thanks,
    Madhuri.

    Hi Rich,
    I used the program RSTXFCOM to compare clients.
    I have copied the existing Script into new Script and did not do any changes in the copied Script and ran program RSTXFCOM to compare Forms.
    I expected message saying no differences found, But when I saw the output, It showed the default Text Element in the Window are different. Can you please explain me the reason for the Differences.
    After that I changed the Text in a Text Element of a Window. and again I ran program RSTXFCOM to identify those differences. But Program RSTXFCOM was not identifying those differences. Can you let me know is there any other way identify the differences in the text of the Window.
    Thanks in Advance,
    Madhuri.

  • What program is comparable to adobe flash player on my iPad?

    What program is comparable to adobe flash player on my IPad?

    IOS device do not support Flash
    However Skyfire, Photon, iSwifter, Browse2Go and Puffin Web Browser will provide limited Flash capability

  • Program to compare Standard Texts

    Hi,
    Can you please let me know the Program to compare the Standard Texts in SAP.
    Thanks,
    Madhuri.

    Hi,
    I would like to compare Standard Texts across the systems and also would like to compare two standard texts.
    I would like to have the comparision option to the standard texts similar to the SE39 Transaction for programs.
    Thanks,
    Madhuri.

  • Program to compare versions of programs and customizing

    Hi All,
    Does anyone know of a program that compare between versions of programs
    and customizing between clients ?
    I need a program that compare between all programs in the system, not just a single program.
    Thanks,
    Michal.

    Hi,
    I have the same requirement and checked out how transaction SE39 did remote compare. This is basically RFC enabled function module RPY_PROGRAM_READ. I wrote this program which can mass compare a list of programs between 2 systems ( normally one being local )
    I have build in a rather primitive logic to ignore empty lines and different option to ignore ident and spaces. If a program with 1000 lines has one extra line in one of the systems at line 300, the program will say there are 700 lines differing. The purpose is to find programs there are not exactly identical - a 'normal' remote compare can then be done. The program is created as hotspot that takes you to SE38.
    The program compares ABAP code and program texts.
    I have tested this on 4.6C and ECC 5.0 systems
    The usual disclaimer about no responsibility applies.
    report z_remote_compare .
    Mass remote compare programs
    Ole Elmose QRAOLEE 2007-03-12
    tables : rpy_prog, rfcdes.
    Selection screen
    selection-screen begin of block b1 with frame title text-001.
    select-options: s_prname for rpy_prog-progname obligatory.
    parameters : p_rfcde1 type rfcdes-rfcdest obligatory default 'LOCAL'.
    parameters : p_rfcde2 type rfcdes-rfcdest obligatory.
    selection-screen end of block b1.
    selection-screen skip 1.
    selection-screen begin of block b2 with frame title text-002.
    parameters : rb_all radiobutton group spac.
    parameters : rb_lead  radiobutton group spac.
    parameters : rb_no  radiobutton group spac.
    selection-screen end of block b2.
    DATA DECLARATION
    types : begin of gty_finaltab,
              progname type progname,
              version1 type versno,
              version2 type versno,
              changeon1 type rdir_udate,
              changeon2 type rdir_udate,
              changeby1 type unam,
              changeby2 type unam,
              count_abap1 type sytabix,
              count_abap2  type sytabix,
              error_abap  type sytabix,
              error_text  type sytabix,
              gen_text(60) type c,
              selk type c,
              color type lvc_t_scol,  " color
           end of gty_finaltab.
    data : gt_source1 type standard table of abapsource.
    data : ls_source1 type abapsource.
    data : gt_source2 type standard table of abapsource.
    data : ls_source2 type abapsource.
    data : gt_textelem1 type standard table of textpool.
    data : ls_textelem1 type textpool.
    data : gt_textelem2 type standard table of textpool.
    data : ls_textelem2 type textpool.
    data : ls_progdata1 type rpy_prog.
    data : ls_progdata2 type rpy_prog.
    data : ld_progname type programm.
    data : ld_spaces(6) type c.
    data : ld_error_abap type sytabix.
    data : ld_error_text type sytabix.
    data : ld_count_abap1  type sytabix.
    data : ld_count_abap2  type sytabix.
    data : ld_count1 type sytabix.
    data : ld_percent type i.
    data : ld_text(50) type c.
    data : ld_text_pro(4) type c.
    data : ld_i_save type c.
    data : gt_finaltab type standard table of gty_finaltab.
    data : ls_finaltab type gty_finaltab.
    data : ls_bdcdata type bdcdata.
    data : gt_bdcdata  type standard table of bdcdata.
    ALV DATA ***
    constants : lc_pick(7) type c value 'PICK'.
    type-pools : slis.
    data :
           gt_fieldcat type slis_t_fieldcat_alv,
           ls_fieldcat type slis_fieldcat_alv,
           id_layout type slis_layout_alv,
           repname  type syrepid,
           gt_events   type slis_t_event.
    Cell color
    data: ls_cellcolor_tab    type lvc_s_scol,
          lt_cellcolor_tab    type lvc_t_scol,
          ls_color            type lvc_s_colo.
    CONSTANTS : lc_fname TYPE char7 VALUE 'STATUS'.
    START-OF-SELECTION.
    start-of-selection.
      sort s_prname.
      delete adjacent duplicates from s_prname.
      describe table s_prname lines ld_count1.
      loop at s_prname.
        clear ld_error_abap.
        clear ld_error_text.
        clear ld_count_abap1.
        clear ld_count_abap2.
        clear ls_finaltab.
        ld_progname = s_prname-low.
        perform progressbar using sy-tabix ld_count1.
    First RFC call for program details
        clear gt_source1. clear gt_textelem1. clear ls_progdata1.
    Get first ( local ) version
        call function 'RPY_PROGRAM_READ'
            destination  p_rfcde1
             exporting
               language =   sy-langu
               program_name = ld_progname
               with_includelist = ''
               only_source =  ' '
               only_texts = ' '
               read_latest_version = 'X'
               with_lowercase =  ' '
            importing
              prog_inf = ls_progdata1
            tables
             INCLUDE_TAB   RPY_REPO OPTIONAL
                      source = gt_source1
                      textelements = gt_textelem1
               exceptions
                      cancelled = 1
                      not_found = 2
                      permission_error = 3
                      communication_failure = 4
                      system failure        = 5.
        case sy-subrc.
          when 0.
    Delete empty lines
            delete gt_source1 where line is initial.
    Ignore program name in text
            delete gt_textelem1 where id = 'R'.
            delete gt_textelem1 where id = 'H'.
    Number of lines of ABAP
            describe table gt_source1[] lines ld_count_abap1 .
          when 1.
            ls_finaltab-gen_text = text-003.
          when 2.
            ls_finaltab-gen_text = text-004.
          when 3.
            ls_finaltab-gen_text = text-005.
          when 4.
            ls_finaltab-gen_text = text-006.
          when 5.
            ls_finaltab-gen_text = text-007.
        endcase.
    Second RFC call for program details
        clear gt_source2. clear gt_textelem2. clear ls_progdata2.
    Get remote version
        call function 'RPY_PROGRAM_READ'
        destination  p_rfcde2
             exporting
               language =   sy-langu
               program_name = ld_progname
               with_includelist = ''
               only_source =  ' '
               only_texts = ' '
               read_latest_version = 'X'
               with_lowercase =  ' '
         importing
               prog_inf = ls_progdata2
         tables
                 INCLUDE_TAB   RPY_REPO OPTIONAL
                      source = gt_source2
                      textelements = gt_textelem2
         exceptions
                      cancelled = 1
                      not_found = 2
                      permission_error = 3
                      communication_failure = 4
                      system failure        = 5.
        case sy-subrc.
          when 0.
    Delete empty lines
            delete gt_source2 where line is initial.
    Ignore program name in text
            delete gt_textelem2 where id = 'R'.
            delete gt_textelem2 where id = 'H'.
    Number of lines of ABAP
            describe table gt_source2[] lines ld_count_abap2 .
          when 1.
            ls_finaltab-gen_text = text-003.
          when 2.
            ls_finaltab-gen_text = text-004.
          when 3.
            ls_finaltab-gen_text = text-005.
          when 4.
            ls_finaltab-gen_text = text-006.
          when 5.
            ls_finaltab-gen_text = text-007.
        endcase.    .
    Remove space depending on readiobutton selection
        if rb_all is initial.
          if rb_no is initial.
    Remove multiple+leadeing spaces
            loop at gt_source1 into ls_source1.
              condense ls_source1-line.
              modify gt_source1 from ls_source1 transporting line.
            endloop.
            loop at gt_source2  into ls_source2.
              condense ls_source2-line.
              modify gt_source2 from ls_source2 transporting line.
            endloop.
          else.
    Remove all spaces
            loop at gt_source1 into ls_source1.
              condense ls_source1-line no-gaps.
              modify gt_source1 from ls_source1 transporting line.
            endloop.
            loop at gt_source2  into ls_source2.
              condense ls_source2-line no-gaps .
              modify gt_source2 from ls_source2 transporting line.
            endloop.
          endif.
        endif.
    Compare ABAP SOURCE
        clear ld_error_abap.
        loop at gt_source1 into ls_source1.
          read table gt_source2 index sy-tabix into ls_source2.
          if ls_source2-line ne ls_source1-line.
            ld_error_abap = ld_error_abap + 1.
          endif.
        endloop.
    Compare texts
        clear ld_error_text.
        loop at gt_textelem1 into ls_textelem1.
          read table gt_textelem2 into ls_textelem2 index sy-tabix.
          translate ls_textelem2-entry to lower case.
          translate ls_textelem1-entry to lower case.
          if ls_textelem2-id ne ls_textelem1-id
          or ls_textelem2-key ne ls_textelem1-key
          or ls_textelem2-entry ne ls_textelem1-entry.
            ld_error_text = ld_error_text + 1.
          endif.
        endloop.
    Put to ALV output table
        ls_finaltab-progname = ld_progname.
        ls_finaltab-version1 = ls_progdata1-version.
        ls_finaltab-version2 = ls_progdata2-version.
        ls_finaltab-changeon1 = ls_progdata1-mod_date.
        ls_finaltab-changeon2 = ls_progdata2-mod_date.
        ls_finaltab-changeby1 = ls_progdata1-mod_user.
        ls_finaltab-changeby2 = ls_progdata2-mod_user.
        ls_finaltab-count_abap1 = ld_count_abap1.
        ls_finaltab-count_abap2 = ld_count_abap2.
        ls_finaltab-error_abap = ld_error_abap.
    *Adding the color.
        if  ls_finaltab-error_abap is initial.
          ls_color-col = 5.  "green
        else.
          ls_color-col = 6.  "red
        endif.
        clear ls_cellcolor_tab.
        clear lt_cellcolor_tab.
        clear ls_finaltab-color.
        ls_cellcolor_tab-fname = 'ERROR_ABAP'. " Field name to color
        ls_color-int = 1.
        ls_color-inv = 0.
        move ls_color to ls_cellcolor_tab-color.
        insert ls_cellcolor_tab into table
                                lt_cellcolor_tab.
        insert lines of lt_cellcolor_tab
                         into table ls_finaltab-color.
        ls_finaltab-error_text = ld_error_text.
    *Adding the color.
        if  ls_finaltab-error_text is initial.
          ls_color-col = 5.  "green
        else.
          ls_color-col = 6.  "red
        endif.
        clear ls_cellcolor_tab.
        clear ls_finaltab-color.
        ls_cellcolor_tab-fname = 'ERROR_TEXT'." Field name to color
        ls_color-int = 1.
        ls_color-inv = 0.
        move ls_color to ls_cellcolor_tab-color.
        insert ls_cellcolor_tab into table
                                lt_cellcolor_tab.
        insert lines of lt_cellcolor_tab
                         into table ls_finaltab-color.
    Move to internal table
        append ls_finaltab to gt_finaltab.
      endloop.
      clear ls_finaltab.
      perform fieldcat.
      perform f4000_events changing gt_events.
      perform layout_build using id_layout.
      perform grid_disp.
          FORM f4000_events_init                                        *
    -->  I_EVENTS                                                      *
    form f4000_events changing i_events type slis_t_event.
      data: line_event type slis_alv_event.
      clear line_event.
      line_event-name = 'PF_STATUS_SET'.
      line_event-form = 'F4200_PF_STATUS_SET'.
      append line_event to i_events.
      clear line_event.
      line_event-name = 'USER_COMMAND'.
      line_event-form = 'F4300_USER_COMMAND'.
      append line_event to i_events.
    endform.                    " f3000_events_init
          FORM f4200_pf_status_set                                      *
    -->  I_EXTAB                                                       *
    form f4200_pf_status_set using i_extab type slis_t_extab.
      refresh i_extab.
    The PF status is an exact copy of the PF status 'STANDARD' of program
    SAPLSALV
      set pf-status 'STANDARD' excluding i_extab.
    endform.  "f4200_pf_status_set
          FORM layout_build                                             *
    -->  P_LAYOUT                                                   *
    form layout_build using   p_layout type slis_layout_alv.
      p_layout-box_fieldname       = 'SELK'.  " Checkbox
      p_layout-get_selinfos        = 'X'.
      p_layout-f2code              = 'PICK' .    " Doppelklickfunktion
      p_layout-key_hotspot         = 'X'.
      p_layout-info_fieldname      = 'COL'.
      p_layout-coltab_fieldname    = 'COLOR'.
      p_layout-zebra               = 'X'. " Stripes
      p_layout-colwidth_optimize   = 'X'. " Optimize
    endform.  " layout_build
          FORM GRIDDISP                                                 *
    form grid_disp.
      repname = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
      exporting
         I_INTERFACE_CHECK                 = ' '
         I_BYPASSING_BUFFER                =
         I_BUFFER_ACTIVE                   = ' '
           i_callback_program                = repname
         I_CALLBACK_PF_STATUS_SET          = ''
         I_CALLBACK_USER_COMMAND           = ''
         I_CALLBACK_TOP_OF_PAGE            = ' '
         I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
         I_CALLBACK_HTML_END_OF_LIST       = ' '
         I_STRUCTURE_NAME                  =
         I_BACKGROUND_ID                   = ' '
         i_grid_title                      = ws_title
         I_GRID_SETTINGS                   =
           is_layout                         = id_layout
           it_fieldcat                       = gt_fieldcat[]
         IT_EXCLUDING                      =
         IT_SPECIAL_GROUPS                 =
         IT_SORT                           =
         IT_FILTER                         =
         IS_SEL_HIDE                       =
         I_DEFAULT                         = 'X'
           i_save                            = ld_i_save
         is_variant                        = ds_variant
           it_events                         = gt_events[]
         it_event_exit                     = gt_event_exit[]
         IS_PRINT                          =
         IS_REPREP_ID                      =
         I_SCREEN_START_COLUMN             = 0
         I_SCREEN_START_LINE               = 0
         I_SCREEN_END_COLUMN               = 0
         I_SCREEN_END_LINE                 = 0
         IT_ALV_GRAPHICS                   =
         IT_ADD_FIELDCAT                   =
         IT_HYPERLINK                      =
         I_HTML_HEIGHT_TOP                 =
         I_HTML_HEIGHT_END                 =
         IT_EXCEPT_QINFO                   =
       IMPORTING
         E_EXIT_CAUSED_BY_CALLER           =
         ES_EXIT_CAUSED_BY_USER            =
       tables
         t_outtab                          = gt_finaltab
      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.  " grid_disp
    *&      Form  fieldcat
          text
    -->  p1        text
    <--  p2        text
    form fieldcat.
      data: pos   type  i.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'PROGNAME'.
      ls_fieldcat-seltext_m     = 'Program name'.
      ls_fieldcat-seltext_s     = 'Program name'.
      ls_fieldcat-seltext_l     = 'Program name'.
      ls_fieldcat-ddictxt       = 'L'.
      ls_fieldcat-hotspot = 'X'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'VERSION1'.
      ls_fieldcat-seltext_m     = 'Version 1'.
      ls_fieldcat-seltext_s     = 'Version 1'.
      ls_fieldcat-seltext_l     = 'Version 1'.
      ls_fieldcat-ddictxt       = 'L'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'VERSION2'.
      ls_fieldcat-seltext_m     = 'Version 2'.
      ls_fieldcat-seltext_s     = 'Version 2'.
      ls_fieldcat-seltext_l     = 'Version 2'.
      ls_fieldcat-ddictxt       = 'L'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'CHANGEON1'.
      ls_fieldcat-seltext_m     = 'Changed on 1'.
      ls_fieldcat-seltext_s     = 'Changed on 1'.
      ls_fieldcat-seltext_l     = 'Changed on 1'.
      ls_fieldcat-ddictxt       = 'L'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'CHANGEON2'.
      ls_fieldcat-seltext_m     = 'Changed on 2'.
      ls_fieldcat-seltext_s     = 'Changed on 2'.
      ls_fieldcat-seltext_l     = 'Changed on 2'.
      ls_fieldcat-ddictxt       = 'L'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'CHANGEBY1'.
      ls_fieldcat-seltext_m     = 'Changed by 1'.
      ls_fieldcat-seltext_s     = 'Changed by 1'.
      ls_fieldcat-seltext_l     = 'Changed by 1'.
      ls_fieldcat-ddictxt       = 'L'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'CHANGEBY2'.
      ls_fieldcat-seltext_m     = 'Changed by 2'.
      ls_fieldcat-seltext_s     = 'Changed by 2'.
      ls_fieldcat-seltext_l     = 'Changed by 2'.
      ls_fieldcat-ddictxt       = 'L'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'COUNT_ABAP1'.
      ls_fieldcat-seltext_m     = 'Count 1'.
      ls_fieldcat-seltext_s     = 'Count 1'.
      ls_fieldcat-seltext_l     = 'Count 1'.
      ls_fieldcat-ddictxt       = 'L'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'COUNT_ABAP2'.
      ls_fieldcat-seltext_m     = 'Count 2'.
      ls_fieldcat-seltext_s     = 'Count 2'.
      ls_fieldcat-seltext_l     = 'Count 2'.
      ls_fieldcat-ddictxt       = 'L'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
      clear ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'ERROR_ABAP'.
      ls_fieldcat-seltext_m     = 'ABAP differences'.
      ls_fieldcat-seltext_s     = 'ABAP differences'.
      ls_fieldcat-seltext_l     = 'ABAP differences'.
      ls_fieldcat-ddictxt       = 'L'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'ERROR_TEXT'.
      ls_fieldcat-seltext_m     = 'Text differences'.
      ls_fieldcat-seltext_s     = 'Text differences'.
      ls_fieldcat-seltext_l     = 'Text differences'.
      ls_fieldcat-ddictxt       = 'L'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       = pos.
      ls_fieldcat-tabname       = 'gt_fulltab'.
      ls_fieldcat-fieldname     = 'GEN_TEXT'.
      ls_fieldcat-seltext_m     = 'Status'.
      ls_fieldcat-seltext_s     = 'Status'.
      ls_fieldcat-seltext_l     = 'Status'.
      ls_fieldcat-ddictxt       = 'L'.
      append ls_fieldcat to gt_fieldcat.
      clear ls_fieldcat.
    endform.                    " fieldcat
    *&      Form  progressbar
          text
         -->P_SY_TABIX  text
         -->P_LD_COUNT1  text
    form progressbar using p_tabix p_count.
      ld_percent = 100 * ( p_tabix - 1 ) / p_count.
      move ld_percent to ld_text_pro.
      ld_text   = '% of programs processed'.
      concatenate   ld_text_pro ld_text  into ld_text
    separated by space.
      call function 'SAPGUI_PROGRESS_INDICATOR'
           exporting
                percentage = ld_percent
                text       = ld_text.
    endform.                    " progressbar
          FORM f4300_user_command                                       *
    -->  UCOMM                                                         *
    -->  SELFIELD                                                      *
    form f4300_user_command using ucomm like sy-ucomm
                                          ls_selfield type slis_selfield.
    Per default, keep position and refresh screen with DISPLAY
      ls_selfield-col_stable = 'X'.
      ls_selfield-row_stable = 'X'.
      ls_selfield-refresh = 'X'.
      case ucomm.
    Double-click **********************
        when lc_pick.  " Doubleclick anywhere on line + hotspot
          read table gt_finaltab index ls_selfield-tabindex into
                      ls_finaltab.
          clear gt_bdcdata.
          perform bdc_dynpro using 'SAPLWBABAP' '0100'.
          perform bdc_field using   'RS38M-FUNC_EDIT' 'X'.
          perform bdc_field using 'rs38m-programm'
                                   ls_finaltab-progname.
          perform bdc_field using 'BDC_OKCODE' '=SHOP'.
          call transaction 'SE38' using gt_bdcdata mode 'E'.
        when others.
      endcase.
      clear ucomm.
    endform.                    " f4300_user_command
    *&      Form  bdc_dynpro
          text
         -->PROGRAM
         -->DYNPRO
    form bdc_dynpro  using
                          program
                          dynpro.
      clear ls_bdcdata.
      ls_bdcdata-program  = program.
      ls_bdcdata-dynpro   = dynpro.
      ls_bdcdata-dynbegin = 'X'.
      append ls_bdcdata to gt_bdcdata.
    endform.                    " bdc_dynpro
          FORM BDC_FIELD                                                *
    -->  FNAM                                                          *
    -->  FVAL                                                          *
    form bdc_field using
                            fnam
                            fval.
      clear ls_bdcdata.
      ls_bdcdata-fnam = fnam.
      move fval to  ls_bdcdata-fval .
      append ls_bdcdata to gt_bdcdata.
    endform.                    " bdc_field
    Please use these text symbols :
    001     Selection data
    002     Text compression
    003     RFC Call cancelled
    004     Program does not exits on RFC target
    005     RFC permission denied
    006     RFC communication error
    007     RFC system failure
    and these selection texts :
    P_RFCDE1     RFC Connection 1
    P_RFCDE2     RFC Connection 2
    RB_ALL     Include identation
    RB_LEAD     Ignore leading spaces
    RB_NO     Ignore all spaces
    S_PRNAME     Program name
    Hope someone finds this useful.
    - Ole Elmose

  • Do we any SAP Standard program to Send IDOC of Type CODCMT01

    Do we any SAP Standard program for outbound processing for IDOC Type CODCMT01
    Message was edited by: Vipin Nagpal

    - If it is for test purpose only, you could use transaction WE19 (Test Tool).
    - As well you could write your own program and user MASTER_IDOC_DISTRIBUTE function module... but in this case you need to fill yourself the fields of the IDOC
    - as well you can have a look at function group KALE...
    E.g. function module K_DOCUMENT_SEND

  • User Exit to call program to create IDocs.

    Hi All,
    For any creation/changes of material master using MM01/MM02 (after save ) one of the user exit will trigger.
    From the user exit, I have to call the custom program to create MATMAS IDOCs.
    if any failures in changes/creation of material master. It has to roll back eveything created by program.
    Please let me know how to achieve this with out calling an event.
    Thanks - Vinay

    There are a number of standard methods to automatically create the IDOC.  You can activate the change pointers and depending on need, use BD64 to create a distribution model, and create the necessary WE20 setups to create the outbound IDOC.
    If you have to process the IDOC using custom logic, you can define that as well - although it's not clear why you need a custom generating program.  You can insert code into one of the IDOC user-exits to manipulate the content if needed.  Also, don't overlook the pre-delivered stuff from SAP that provides filtering out of segments and the like.
    There are a few good SAP PRess books about doing ALE distribution -- if this is an unfamiliar area, it's worth the cost to buy one -- if you spend any time around IDOCS, you'll appreciate it.

  • Program logic for IDoc

    hi everyone,
    I am new to IDoc. Through some forums i came to know that we need to create
    segment in we30
    idoctype in we31
    i understand the above two
    msgtype in we80
    attaching msgtype to idoctype in we81
    i didnt understand how to do the above two, and also i want to know what to do next..like how to do the program
    my mailID is [email protected](for any materials if u have)
    Regards,
    Venkata
    Points will be rewarded to answers given
    Message was edited by:
            venkata k

    One very simple code:
    ==============================
    *abap program to generate a customized idoc and send it to the target *system.
    REPORT z_b8_ale .
    TABLES : ekko,ekpo.
    ***Data Declaration for IDOC Begin
    DATA : v_master_control LIKE edidc.
    DATA : BEGIN OF int_idoc_data OCCURS 0.
            INCLUDE STRUCTURE edidd.
    DATA : END OF int_idoc_data.
    DATA : BEGIN OF int_comm_control OCCURS 0.
            INCLUDE STRUCTURE edidd.
    DATA : END OF int_comm_control.
    DATA : BEGIN OF itab OCCURS 10,
           lifnr LIKE ekko-lifnr,
           ekorg LIKE ekko-ekorg,
           ekgrp LIKE ekko-ekgrp,
           kdate LIKE ekko-kdate,
           ematn LIKE ekpo-ematn,
           ktmng LIKE ekpo-ktmng,
           meins LIKE ekpo-meins,
           netpr LIKE ekpo-netpr,
           werks LIKE ekpo-werks,
           peinh LIKE ekpo-peinh,
           END OF itab.
    DATA : str LIKE edidd-sdata,
           sagrnum(10) TYPE c VALUE '5500000019'.
    DATA:itab1 LIKE ekko OCCURS 0 WITH HEADER LINE,
         itab2 LIKE ekpo OCCURS 0 WITH HEADER LINE.
    ***Data Declaration for IDOC End
    ****FILL_MASTER_CONTROL
    CLEAR v_master_control.
    v_master_control-rcvpor = 'ZPORTB8'.
    v_master_control-rcvprt = 'LS'.
    v_master_control-rcvprn = 'D12503'.
    v_master_control-mestyp = 'ZSCHB5'.
    v_master_control-idoctp = 'ZSCHIDOC'.
    ****FILL_IDOC_DATA
    CLEAR int_idoc_data.
    REFRESH int_idoc_data.
    int_idoc_data-segnam = 'ZSCHDLAGR'.
    SELECT single * INTO itab1 from ekko WHERE ebeln = sagrnum.
    SELECT single * INTO itab2 from ekpo WHERE ebeln = sagrnum.
      MOVE itab1-lifnr TO str+0(10).
      MOVE itab1-ekorg TO str+10(4).
      MOVE itab1-ekgrp TO str+14(3).
      MOVE itab1-kdate TO str+17(8).
      MOVE itab2-ematn TO str+25(18).
      MOVE itab2-ktmng TO str+43(16).
      MOVE itab2-meins TO str+59(3).
      MOVE itab2-netpr TO str+62(13).
      MOVE itab2-werks TO str+74(5).
      MOVE itab2-peinh TO str+80(5).
    int_idoc_data-sdata = str.
    APPEND int_idoc_data.
    write : / str.
    CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
         EXPORTING
              master_idoc_control            = v_master_control
         TABLES
              communication_idoc_control     = int_comm_control
              master_idoc_data               = int_idoc_data
         EXCEPTIONS
              error_in_idoc_control          = 1
              error_writing_idoc_status      = 2
              error_in_idoc_data             = 3
              sending_logical_system_unknown = 4
              OTHERS                         = 5.
    COMMIT WORK.
    WRITE : / 'IDOC Number created : ', int_comm_control-docnum.
    Regards,
    Gajendra.

  • RC1_IDOC_SET_STATUS Program - Message Type & Idoc Number

    Hi All,
    Good Morning.
    We use the SAP Standard Program RC1_IDOC_SET_STATUS to convert the status of Idocs. Recently, we had encountered a behavior which we havent come across before.
    The selection screen has the IDOC number, the message type, the current status and the new status. There is an additional trial run checkbox as well.
    (1) If the IDOC number alone is given then the status of that idoc alone will be changed. (And that works successfully)
    (2) If the message type alone is given then the status of the Idocs for that message type are converted (And that works successfully)
    (3) If the message type and the Idoc number is given, then the program converts the status of the all the idocs associated with the message type irrespective of the specification of IDOC numbers in the selection screen. (Now, this is where we faced the problem, the system converted all the Idocs with the mentioned message type ignoring the list of Idocs to be changed).
    This resulted in change of the status of all Idocs of a particular message type.
    Is there a way, we could track the Idocs which got changed and reverse them back to the old status? Is there an SAP note which addresses this issue?
    Your Inputs on this would be highly appreciated.
    Spandana

    Hi,
    With this report , specifying range won't work  because the program loops at the select option and only takes the LOW variable of each record. So it is necessary that you pass all the idoc numbers for which you want to change the status for.
    The solution is to give exact idoc numbers in the single values or copy this program to a 'Z' program and tweak it as per your requirement.
    Br,
    Advait

Maybe you are looking for

  • Report Format... plz help

    Hi All, I am facing a problem in getting the report in proper format. Can anyone help? Scenario: ODS 1 gives the following Data for Jan, 2010: Material--total Sale-- % of total sale M1--4000.00-- 40% M2--6000.00-- 60% ODS2 has the transaction perform

  • Installing Webcam Live! on Windows Vista x64

    This will inform all of the poor consumers who bought a camera shortly before vista was released, only to realize that the camera would not work with thier operating system that they would soon update too. I was very frustrated trying to get my "Webc

  • How do I configure dual monitors on JDS?

    I just have installed Solaris 10u5 on a Dell E521 with an ATI Radeon X1300 Pro graphics card. This card has 2 connectors onto which I connect a FlexScan S1911 (DVI) and an Acer AL1916 (VGA). I now have 2 problems: 1. the resolution is beyond usage (i

  • Yet another iMovie 6 bug-Crashing!

    Why did I have to upgrade on both my drives? Buggy, buggy, buggy. Transitions don't work properly, neither do video effects and it has a tendency to crash. But, hey, great-looking box! I wish instead of coming out with all these fancy new features, t

  • Send inbound IDOC as outbound(copy)

    Hi, We need to send the same inbound IDOC as outbound IDOC to the customer(they want to get a copy of it) How can we do this? We are getting inbound sales order IDOC's and the customer wants the copy of the same IDOC, not order acknowledgement. Is it