Shared Top Border

Enterprise Resource
Planning Portal

 

Advertise | Founder BLOG

ERPGenie.COM ABAP Tips and Tricks Database

THE ultimate
ERP website

 

Forums | Vote for us |

Google    Other Search Options

Login

Login to view more content!!!





Lost Password?
No account yet? Register

Registered Access

Poll

What area of ABAP are you interested in?
 
Home arrow Sample Code arrow IDocs / BDocs arrow Updating IDoc data in segments
Updating IDoc data in segments PDF Print E-mail
User Rating: / 1
PoorBest 
Written by Kevin Wilson   
Tuesday, 13 February 2007

Step by step procedure on how to change Idoc data segments programmatically.

 

STEP 1 - Open document to edit
CALL FUNCTION 'EDI_DOCUMENT_OPEN_FOR_EDIT'
       EXPORTING
            document_number               = t_docnum
       IMPORTING
            idoc_control                  = itab_edidc
       TABLES
            idoc_data                     = itab_edidd
       EXCEPTIONS
            document_foreign_lock         = 1
            document_not_exist            = 2
            document_not_open             = 3
            status_is_unable_for_changing = 4
            OTHERS                        = 5.

STEP 2 - Loop at itab_edidd and change data
LOOP AT itab_edidd WHERE segnam = 'E1EDKA1'.
  e1edka1 = itab_edidd-sdata.
  IF e1edka1-parvw = 'LF'.
    e1edka1-partn = t_eikto.
    itab_edidd-sdata = e1edka1.
    MODIFY itab_edidd.
    EXIT.
  ENDIF.
ENDLOOP.

STEP 3 - Change data segments
CALL FUNCTION 'EDI_CHANGE_DATA_SEGMENTS'
           TABLES
                idoc_changed_data_range = itab_edidd
           EXCEPTIONS
                idoc_not_open           = 1
                data_record_not_exist   = 2
                OTHERS                  = 3.

STEP 3a - Change control record
CALL FUNCTION 'EDI_CHANGE_CONTROL_RECORD'
       EXPORTING
            idoc_changed_control         = itab_edidc
       EXCEPTIONS
            idoc_not_open                = 1
            direction_change_not_allowed = 2
            OTHERS                       = 3.

STEP 4 - Close Idoc
* Update IDoc status
CLEAR t_itab_edids40.
  t_itab_edids40-docnum      = t_docnum.
  t_itab_edids40-status      = '51'.
  t_itab_edids40-repid       = sy-repid.
  t_itab_edids40-tabnam      = 'EDI_DS'.
  t_itab_edids40-mandt       = sy-mandt.
  t_itab_edids40-stamqu      = 'SAP'.
  t_itab_edids40-stamid      = 'B1'.
  t_itab_edids40-stamno      = '999'.
  t_itab_edids40-stapa1      = 'Sold to changed to '.
  t_itab_edids40-stapa2      = t_new_kunnr.
  t_itab_edids40-logdat      = sy-datum.
  t_itab_edids40-logtim      = sy-uzeit.
  APPEND t_itab_edids40.
 
  CALL FUNCTION 'EDI_DOCUMENT_CLOSE_EDIT'
       EXPORTING
            document_number  = t_docnum
            do_commit        = 'X'
            do_update        = 'X'
            write_all_status = 'X'
       TABLES
            status_records   = t_itab_edids40
       EXCEPTIONS
            idoc_not_open    = 1
            db_error         = 2
            OTHERS           = 3.

Related Items:

 
< Prev   Next >

Google Search

Statistics

Contribution Activity
Utilities: 38
Tips and Tricks: 330
Sample Code: 164
Total Contributions: 545

Member Activity
Members: 6061 since 2/1/2007!
New: 0 since yesterday!
Visitors: 959642

Newest Members

Welcome our newest members:

Google Ads

Shared Bottom Border

Contact Us | Polls | Add URL | Contribute | Privacy | Terms | Feedback

Discussion Forum | BLOG | Consultants: Post your resume | Companies: Advertise on ERPGenie.COM | Post Job
Financials Consultant | Consultant Review | Gallia Consulting | Supply Chain Project | SAP Financials Forum
GenieHoldings.COM, Inc. | Genie Press | WorkflowGenie | ESAGenie | ERPTopSites | ABAP Tips and Tricks | SAP Solutions Database

EDIGenie | Searching Survivor