Problem in IDOC processing

Hi,
I have a File to IDOC scenario from third party to ISU.
PI interface is configured to pick up XML files.
Problem is occuring to process single files above 4-5 mb and process multiple files .
Though its showing processed properly in SXMB_MONI but the IDOC is not created in the ISU side.
In the outbound status field of SXMB_MONI we can see red flag with message "Message has error in outbound side".
Please help how to solve this. There is no issue in idoc configuration as it was running properly till date.
Thanks,

Hi Apu,
If the message has error on outbound side, can you please check the RFC once? Also can you please provide more details viz the design in PI
Regards,
Sriram

Similar Messages

  • IDOC processing report

    I want to development a report, part of the report is to find out if some is modifing an IDOC (if it has been loocked by the user). How can I do it? Can i use FM "ENQUEUE_ES_EDIDOCE" to do it? Try to lock the idoc again using the FM. if SY_SUBRC = 0, it means it was unlocked before. I am not sure if I am in right direction.]? Please suggest.
    Thanks,
    AP

    Joy,
    The problem is, idoc processing function module is not locking the Idoc(no ENQUE statement).  Is there any function module which can tell if someone is modifying idoc.
    Thanks,
    AP

  • Problem with IDoc scenario - IDocs do not aarive to XI

    Hi guys!
    I have a problem with IDoc->XI->File scenario. Colleagues send IDocs from R/3 and they are not in the XI. In R/3 they look like if they were correctly sent, however, I can not see them in sxmb monitor. BUT, when they send them again explicitly from R/3 (t-code WE19), they arrive...
    REALLY strange...
    Any suggestions?
    IDX2 metadata loaded.. I think, all needed settings are done.
    Question - do I need to set up LS in XI ABAP part?
    Thanx, Olian!
    P.

    Hi Olian ,
    just check if u have followed all the following steps
    SAP XI
    1) RFC Destination (SM59)
    a) Choose create.
    b) Specify the name of the RFC destination
    c) Select connection type as 3 and save
    d) In the technical settings tab enter the details SAP SID/URL and system number#.
    e) Enter the Gateway host as same details above SID/URL.
    f) Gateway service is 3300+system number#.
    g) In the Logon /Security tab, enter the client user & Password details of Destination system.
    h) Test the connection and remote logon.
    2) Create Port (IDX1)
    a) Select create new button
    b) Enter the port name as SAP+SID (The starting char should be SAP)
    c) Enter the destination client.
    d) Enter the RFC Destination created in SAP R/3 towards other system.
    e) Save
    3) Load Meta Data for IDOC (IDX2) a) Create new
    b) IDOC Message Type
    c) Enter port created in IDX1.
    SAP R/3
    1) RFC Destination (SM59)
    a) Choose create.
    b) Specify the name of the RFC destination
    c) Select connection type as 3 and save
    d) In the technical settings tab enter the details SAP SID/URL and system number#.
    e) Enter the Gateway host as same details above SID/URL.
    f) Gateway service is 3300+system number#.
    g) In the Logon /Security tab, enter the client user & Password details of Destination system.
    h) Test the connection and remote logon.
    2) Create Port (We21)
    a) First Select Transactional RFC and then click create button
    b) Enter the destination port name as SAP+SID (The starting char should be SAP)
    c) Enter the destination client.
    d) Enter the RFC Destination created in SAP R/3 towards other system.
    e) Save
    3) Create Partner Profile (WE20)
    a) Create New
    b) Create the Partner no. name as same the logical system name of the destination system.
    c) Select Partner type LS
    d) Enter details for Type: US/USER, Agent, and Lang.
    e) Click on the + button to select the message type.
    f) Select Partner no. and LS which ever create above.
    g) Select Message type
    h) Select Process code related to the Message type.
    I) save.
    In SLD – System Landscape Directory
    TS for R/3 (Logical system):-Assign the client name created in R/3 as Logical system Name.
    Ts for Third Party (Logical system):-
    BS for SAP R/3 (Logical system):- Assign the client name created in R/3 as Logical system Name.
    BS for Third Party (Logical system):-Enter the XI logical system name.
    In Transaction SALE
    Define and Assign the logical system name
    Regards,
    AshwinM

  • Inbound Idoc processing issues - Partner Profiles - error status 56

    Hello All,
    I'm having a little difficulty posting an idoc coming from MDM.  It's a CREMDM04 xml coming from an MDM system.  It is getting mapped through PI and is being split into ADRMAS02 and CREMAS04 Idocs.  The message is being passed through XI and being posted to the ECC system, but certain fields in the EDI_DC40 header table are not being populated correctly (i believe).  I'm using nothing but standard mapping/material from the SAP Business Content for XI.  After looking through the standard XSLTs i cannot find the field-to-field mapping where the fields below are being populated.
    The RCVPOR value (SAP[SID]) is correct when i view it in SOAP Header, but does not appear in the remote system under the receiver port for the inbound idoc.
    The RCVPRN value ([String Value]) is incorrect in the SOAP Header and does appear in the remote system under the receiver partner number for the inbound idoc.  How is the RCVPRN value being populated? 
    SOAP Header in IDocOutbound tag
      <SAP:RCVPOR>SAP[SID]</SAP:RCVPOR>
      <SAP:RCVPRN>[String Value]</SAP:RCVPRN>
      <SAP:RCVPRT>LS</SAP:RCVPRT>
    I've been trying to trace down the string value for the RCVPRN, but i cannot find it anywhere.  Perhaps i'm just overlooking it?
    When i set the proper values (port = SAP<SIDofECC> and partner number = <LSnameof ECC>) using WE19 in the remote system then the partner profile is found and i'm left with different error to please specify an address group.
    Any help is very much appreciated! :-D

    Hi Jason ,
    Just check out if you have done the following steps most of us make minor mistake here ....... I think this would solve your problem
    To Configure the IDOC SCENARIOS ,PROCEED AS FOLLOWS
    STEP 1:ALE SETTINGS TO POST IDOC INTO SAP R/3
    We need to do the following settings in XI
    1) Create an RFC Destination to the Receiving System in transaction code (SM59)
    a) Choose create
    b) Specify the name of the RFC destination
    c) Select connection type as 3 and save
    d) In the technical settings tab enter the details SAP SID/URL and system number#
    e) Enter the Gateway host as same details above SID/URL
    f) Gateway service is 3300+system number#
    g) In the Logon /Security tab, enter the client, user & Password details of Destination system
    h) Test the connection and remote logon.Both should be succesful
    2) Create Port Using Transaction Code IDX1
    a) Select Create New button
    b) Enter the port name as SAP+SID (The starting char should be SAP)
    c) Enter the destination client
    d) Enter the RFC Destination created in XI towards R/3
    e) Save
    3) Load Meta Data for IDOC Using transaction Using Transaction (IDX2)
    a) Create new
    b) IDOC Message Type
    c) Enter port created in IDX1
    SETTINGS IN SAP R/3
    We need to do the following settings in R/3
    Logon to Sap R/3 System
    1) Create an RFC Destination to XI in transaction code (SM59)
    a) Choose create
    b) Specify the name of the RFC destination
    c) Select connection type as 3 and save
    d) In the technical settings tab enter the details SAP SID/URL and system number#
    e) Enter the Gateway host as same details above SID/URL
    f) Gateway service is 3300+system number#
    g) In the Logon /Security tab, enter the client, user & Password details of Destination system
    h) Test the connection and remote logon.Both must be succesful
    2) Create communication Port for Idoc processing Using Transaction(We21)
    a) First Select Transactional RFC and then click create button
    b) Enter the destination port name as SAP+SID (The starting char should be SAP)
    d) Enter the RFC Destination created in SAP R/3 towards other system.
    e) Save
    3) Create Partner Profile with Inbound Parameters (WE20)
    a) Create New
    b) Create the Partner no. name as same the logical system name of the destination system
    c) Select Partner type LS
    d) Enter details for Type: US/USER, Agent, and Lang
    Then Save
    e) Select Partner no. and LS which were create above
    f) Now we have to give some Inbound Parameters.So click on ADD TO Create Inbound Parameter
    g) Select Message type
    h) Double click on Message Type and Then Enter the details for Message Type and Process Code.
    I) save
    4) In Transaction SALE, Create Logical System
    a). Go to Basic Settings-> First Define logical systems
    and then assign logical systems
    b) Double click on Define the logical systems
    c) Give data for your Logicaal System and Name
    d) Now click on Save.Here one window may appear just click on Continue.Now the Logical System name is ready
    e) Assign the logical system name to the client
    do let me know if it helped
    Edited by: Tom  Jose on Feb 21, 2008 9:04 AM

  • Problem with Idoc segment maximum length

    Hi friends,
    We are now creating a new Idoc type. We have started to create the first segment but we encountered a major problem.
    The problem is that we have a field of 4000 characters but the limit of all segment fields together is 1000 characters.
    Is there any way to change this limitation or another way to define Idoc?
    Thanks in advanced,
    Udi Dekel.

    Hi,
    When you create a segment that exceeds the max length, SAP automatically creates a child segment for the exceeded length. For your problem though, you can create 4 segments of length 1000 each and split the data in these 4 segments and then concatenate the data later in the idoc processing function module. On the other hand if it is an outbound idoc, you can ask the receiving system to do the same.
    Best regards,
    Advait

  • Strange result of IDoc processing in the LSMW

    Hi
    I am using MATMAS_MASS_BAPI IDoc in the LSMW to transfer material master data into client's SAP system. After IDoc processing I got green message with text that application document was successfully processed (IDoc
    status = 53). But I can't view created materials using MM03 transaction. Then, records number in the MARA table before and after launching of LSMW is equal.  What may be a reason of this situation? How to solve this problem?
    Edited by: Marat on Nov 4, 2008 5:24 PM

    Hi there
    take a look at the Idoc overview, there should be a t100 message in there if there is a data issue with the idoc BAPI load. However this could be something inconclusive such as 'Inconsistent characteristics' or suchlike. In which case you'll have to check the data and that it matches the requirement for the object

  • IDoc Processing in SAP

    Hi Team,
    I have question about SAP Idoc processing ,
    1) How does SAP process Idocs when it gets around 20 Idocs all in a fraction of secodes for same Idoc/process code  and message type . Will SAP process them one by one , or it will process them all together in parallel processing. Please help me out with this.
    2) We have SAP 3.1 released used for creating delivery when an Inbound Idoc get in to SAP. Most of the time we see Idocs creating delivery but some time Idocs does not create delivery in production, we never had this issue in quality. What can be probale cause of this isse?
    3) We are facing a strange problem , We have one Inbound Idoc  which perform following activity :
    1.       Change delivery (Already created Delivery )
    2.       MB1C (add Inventory  )
    3.       Picking
    4.       PGI
    In the above flow next step will be executed only when preceding steps is successful .Every process is doing itu2019s job in Test /Quality /Production system as expected . But in production some time we are getting some problem while performing Change delivery /  Picking . I would like to know from you people have you ever came across such scenario or you have something to add to the process then please share the approach to minimizes the cause.
    Please share your views.
    Thanks,
    Raj

    Hi,
    The no of IDocs processed at a time is based on the Packet Size that is specified in the configuration of the Partner Profile(WE20). Likewise the specification of the Output Mode is given as either Transfer IDocs Immediately  or Collect IDocs in which case the IDoc would go to 30 status and it would have to be processed using RSEOUT00.
    Thanks
    Krithika

  • Idoc processing best practices - use of RBDAPP01 and RBDMANI2

    We are having performance problems in the processing of inbound idocs.  The message type is SHPCON, and transaction volume is very high.  I am a functional consultant, not an ABAP developer, but will try my best to explain our current setup.
    1)     We have a number of message variants for the inbound SHPCON message, almost all of which are set to trigger immediately upon receipt under the Processing by Function Module setting.
    2)      For messages that fail to process on the first try, we have a batch job running frequently using RBDMANI2.
    We are having some instances of the RBDMANI2 almost every day which get stuck running for a very long period of time.  We frequently have multiple SHPCON idocs coming in containing the same material number, and frequently have idocs fail because the material in the idoc has become locked.  Once the stuck batch job is cancelled and the job starts running again normally, the materials unlock and the failed idocs begin processing.  The variant for the RBDMANI2 batch job is currently set with a packet size of 1 and without parallel processing enabled.
    I am trying to determine the best practice for processing inbound idocs such as this for maximum performance in a very high volume system.  I know that RBDAPP01 processes idocs in status 64 and 66, and RBDMANI2 is used to reprocess idocs in all statuses.  I have been told that setting the messages to trigger immediately in WE20 can result in poor performance.  So I am wondering if the best practice is to:
    1)     Set messages in WE20 to Trigger by background program
    2)     Have a batch job running RBDAPP01 to process inbound idocs waiting in status 64
    3)     Have a periodic batch job running RBDMANI2 to try and clean up any failed messages that can be processed
    I would be grateful if somebody more knowledgeable than myself on this can confirm the best practice for this process and comment on the correct packet size in the program variant and whether or not parallel processing is desirable.  Because of the material locking issue, I felt that parallel processing was not desirable and may actually increase the material locking problem.  I would welcome any comments.
    This appeared to be the correct area for this discussion based upon other discussions.  If this is not the correct area for this discussion, then I would be grateful if the moderator could re-assign this discussion to the correct area (if possible) or let me know the best place to post it.  Thank you for your help.

    Hi Bob,
    Not sure if there is an official best practice, but the note 1333417 - Performance problems when processing IDocs immediately does state that for the high volume the immediate processing is not a good option.
    I'm hoping that for SHPCON there is no dependency in the IDoc processing (i.e. it's not important if they're processed in the same sequence or not), otherwise it'd add another complexity level.
    In the past for the high volume IDoc processing we scheduled a background job with RBDAPP01 (with parallel processing) and RBDMANIN as a second step in the same job to re-process the IDocs with errors due to locking issues. RBDMANI2 has a parallel processing option, but it was not needed in our case (actually we specifically wouldn't want to parallel-process the errors to avoid running into a lock issue again). In short, your steps 1-3 are correct but 2 and 3 should rather be in the same job.
    Also I believe we had a designated server for the background jobs, which helped with the resource availability.
    As a side note, you might want to confirm that the performance issues are caused only by the high volume. An ABAPer or a Basis admin should be able to run a performance trace. There might be an inefficiency in the process that could be adding to the performance issue as well.
    Hope this helps.

  • IDoc processing Delay

    Hello guys,
    we have a problem in our client for the IDoc processing. It is a critical process that have to be finished as soon as possible.
    We take data from a Oracle Database, and do a transformation in PI 7.1 to a Z IDoc which is sent to R/3.
    The problem is that seeing time execution there is a delay from the process in PI 7.1 and R/3.
    For example: in our process PI execution is about 1 second, seeing monitoring it starts at 11:11:53 and finishes at 11:11:54.
    The problem is in the IDoc creation, if we take a look at the IDoc the first entry with status 50 (IDoc created) is at 11:19.
    The IDoc is Z and has option trigger immediately with a Z process code and a Z execution for the IDoc.
    This interface is executed every 30 secons more or less, and the delay only occurs 1 time every week more or less, but they can't wait 8 minutes because it is a critical process.
    We have an IDoc adapter with an RFC created at SM59, and the RFC is executed in milliseconds.
    Do you know where could be the problem? There is any way to see where could be the problem or how to avoid it?
    Many thanks in advance.
    Regards,
    Xavi.
    Edited by: Xavi Carb on May 24, 2011 3:03 PM

    Hello,
    this message has a prioritized queue.
    Seeing the IDocs in R/3, this interface creates IDocs every minute, but in a moment and for 10 minutes no IDoc is created, and after this time, 8-9 Idocs arrive at the same time.
    It seems that the RFC queue is stopped or waiting for these minutes.
    Creating another RFC for this interface would be the same?
    Many thanks.
    Regards,
    Xavi.

  • Question regarding XI/PI and Idoc processing.

    Hi,
    I'm learning XI/PI and I have a question regarding Idoc processing in PI.
    We need to configure communication between our BW system and our PI system using Idocs.
    The Idocs are sent from BW to our PI systems and are then sent back to the BW system, there are no third system involved. The idocs are only between PI and BW.
    Our BW system is already connected with many other R3 systems by using WE20 / WE21 and RFC's and everything works perfectly.
    While I configure this communication between BW and PI it seems that PI is passing the Idoc to the Idoc adapter, converts it to xml and tries to find a receiver for the particular Idoc. I see the error "NO_RECEIVER_CASE_ASYNC" in SXMB_MONI.
    Is this a normal behaviour in PI ? Why is PI thinking that the Idoc needs to be sent to another system when it is infact for itself ??
    Thanks and regards
    Remi

    Hi
    for error "NO_RECEIVER_CASE_ASYNC" in SXMB_MONI.
    This problem may occur due to one of following reasons, so check
    1 service is active in message? transaction SICF and activate service sap/xi/engine (right click, activate)
    2 Is the port 8001 defined in the services on the smicm under services?
    3 Check the roles assign PIDIRUSER
    http://help.sap.com/saphelp_nw04/helpdata/en/56/361041ebf0f06fe10000000a1550b0/content.htm
    role: SAP_XI_ID_SERV_USER attached to it
    Also Check Whether PIDIRUSER has following role
    SAP_SLD_CONFIGURATOR
    SAP_XI_RWB_SERV_USER
    SAP_XI_RWB_SERV_USER_MAIN
    Regards
    Abhishek

  • Re: outbound idoc process

    Can someone explain me on outbound idoc process.
    I am facing problem with an idoc transimission. From sap its getting triggered and showing status 3 ( Sending to port OK  ). But third party is  not able to receive.
    I am not much aware of the middile ware trasmission runs during idoc transfer.
    Please can anyone tell me possible cause of error?

    Outbound Idoc process
    sap outbound program->outbound ALE program (this takes data from application repository)>Craete master Idoc (master Idoc is a virtual Idoc)->ALE service laye (which takes data from distribution model)>communication Idoc--->communication layer
    The status os Idoc will becaome 03 if its pass from the communication layer and it doesnt have any gaurntee that Idoc has reached at receiver end or not.
    To varify that Idoc has reached at receiver end we have two advance method
    1- TRFC method
    2- Auditing method
    In TRFC method a standard program, RBDMOIND, is scheduled or executed online to determine whether the communication was successful.
    If the Idoc has successfully reached to the destination then the status changed from 3 to 12 else status remains 3.
    hope this information helps u.

  • Please  send one exicuted program example of inbound idoc process

    Dear Friends,
            I am facing one problem to process inbound idoc process.Please example send anybody ?
           I have faced problem in standalone process to do inbound idoc process.
            iam waiting for your valuble response.
      Definitly best answer will get best reward.
    Regards.
    Sridhar Menda.

    Hi Sridhar,
    Here is a example of program for inbound idoc process.
    Example Program to Process an IDoc  
    The Example Program to Process an IDoc shows how the fictitious message type XAMPLE, communicated with IDocs of type XAMPLE01, is processed using the inbound function module Idoc_Input_Xample. The IDoc type has a header segment, E1xhead, and any number of item segments E1xitem. The data from the IDoc is written to two database tables, XHEAD and XITEM respectively. XHEAD and XITEM contain the same field names as E1xhead and E1xitem respectively. The fields names and data types are shown in the following two tables:
    Field Name in XHEAD
    Docmnt_no
    Date
    Currency
    Country
    Description
    Document number
    Date
    Currency
    Country
    Type in e1xhead
    CHAR
    CHAR
    CHAR
    CHAR
    Type in XHEAD
    NUMC
    DATS
    CUKY
    CHAR
    Field Name in XITEM
    Item_no
    Materialid
    Descript
    Unit
    Quantity
    Value
    Ship_Inst
    Description
    Item number
    Material number
    Material description
    Unit of measure
    Quantity
    Value
    Shipping instructions
    Type in e1xitem
    CHAR
    CHAR
    CHAR
    CHAR
    CHAR
    CHAR
    CHAR
    Type in xitem
    NUMC
    CHAR
    CHAR
    UNIT
    QUAN
    CURR
    UNIT
    The data on the database is assigned a new document number (field DOCMNT_NO) using number assignment. The field DOCMNT_NO is not stored in the newly created table XHEAD.
    FUNCTION·IDOC_INPUT_XAMPLE.
    *"Local·interface:
    *"·······IMPORTING
    *"·············VALUE(INPUT_METHOD)·LIKE··BDWFAP_PAR-INPUTMETHD
    *"·············VALUE(MASS_PROCESSING)·LIKE··BDWFAP_PAR-MASS_PROC
    *"·······EXPORTING
    *"·············VALUE(WORKFLOW_RESULT)·LIKE··BDWF_PARAM-RESULT
    *"·············VALUE(APPLICATION_VARIABLE)·LIKE··BDWF_PARAM-APPL_VAR
    *"·············VALUE(IN_UPDATE_TASK)·LIKE··BDWFAP_PAR-UPDATETASK
    *"·············VALUE(CALL_TRANSACTION_DONE)·LIKE··BDWFAP_PAR-CALLTRANS
    *"·······TABLES
    *"··············IDOC_CONTRL·STRUCTURE··EDIDC
    *"··············IDOC_DATA·STRUCTURE··EDIDD
    *"··············IDOC_STATUS·STRUCTURE··BDIDOCSTAT
    *"··············RETURN_VARIABLES·STRUCTURE··BDWFRETVAR
    *"··············SERIALIZATION_INFO·STRUCTURE··BDI_SER
    *"·······EXCEPTIONS
    *"··············WRONG_FUNCTION_CALLED
    ·05·July·1996·----
    *·Example·function·module·for·processing·inbound·IDocs·for·ALE·or·EDI.
    *·This·example·applies·for·processing
    *···with····-··one·IDoc·at·a·time
    *···without·-··serialization
    *···········-··customer-exits
    *···········-··calling·an·ALE-enabled·transaction
    *···········-··mass·processing·(more·than·one·IDoc·at·a·time)
    ·Naming·conventions·----
    *·Internal·tables·start·with·'t_'
    *·Internal·field·strings·start·with·'f_'
    *·>>·The·following·line·must·appear·in·the·global·part·of·your
    *·>>·function·group:
    *····include·mbdconwf.············"Report·containing·the·ALE·constants.
    *·The·ALE·constants·start·with·'c_'.
    ··DATA:·SUBRC·LIKE·SY-SUBRC,
    ········OBJECT_NUMBER·LIKE·XHEAD-DOCMNT_NO.
    *·Initialize·variables
    ··SUBRC·=·0.
    *·Read·the·IDoc's·control·record
    ··READ·TABLE·IDOC_CONTRL·INDEX·1.
    *·Process·the·IDoc·and·post·the·data·to·the·database
    ··PERFORM·IDOC_PROCESS_XAMPLE·TABLES···IDOC_DATA
    ·······································IDOC_STATUS
    ······························USING····IDOC_CONTRL
    ······························CHANGING·OBJECT_NUMBER
    ·······································SUBRC.
    *·Fill·the·ALE·export·parameters
    ··CLEAR·IN_UPDATE_TASK.
    ··CLEAR·CALL_TRANSACTION_DONE.·········"Call·Transaction·is·not·used.
    ··IF·SUBRC·<>·0.·······················"Error·occurred
    ····WORKFLOW_RESULT·=·C_WF_RESULT_ERROR.
    ····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_ERROR_IDOCS.
    ····RETURN_VARIABLES-DOC_NUMBER·=·IDOC_CONTRL-DOCNUM.
    ····APPEND·RETURN_VARIABLES.
    ··ELSE.································"IDoc·processed·successfully
    ····WORKFLOW_RESULT·=·C_WF_RESULT_OK.
    ····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_PROCESSED_IDOCS.
    ····RETURN_VARIABLES-DOC_NUMBER·=·IDOC_CONTRL-DOCNUM.
    ····APPEND·RETURN_VARIABLES.
    ····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_APPL_OBJECTS.
    ····RETURN_VARIABLES-DOC_NUMBER·=·OBJECT_NUMBER.
    ····APPEND·RETURN_VARIABLES.
    ··ELSE.
    ENDFUNCTION.
    ·······FORM·IDOC_PROCESS_XAMPLE······································
    ··This·routine·creates·an·application·document·based·on·the·IDoc's···
    ··contents.·Object_Number·contains·the·new·document's·number.··········If·an·error·occurs,·subrc·is·non-zero,·t_idoc_status·is·filled.·······Note:·if·more·than·one·error·is·detected,·t_idoc_status·contains···
    ········more·than·one·status·record.·································
    ··-->··F_IDOC_CONTRL····IDoc·control·record··························
    ··-->··T_IDOC_DATA······IDoc·data·records····························
    ··<--··T_IDOC_STATUS····IDoc·status·records··························
    ··<--··OBJECT_NUMBER····Created·document's·number····················
    ··<--··SUBRC············Return·code··································
    FORM·IDOC_PROCESS_XAMPLE
    ·······TABLES···T_IDOC_DATA····STRUCTURE·EDIDD
    ················T_IDOC_STATUS··STRUCTURE·BDIDOCSTAT
    ·······USING····F_IDOC_CONTRL··STRUCTURE·EDIDC
    ·······CHANGING·OBJECT_NUMBER··LIKE·XHEAD-DOCMNT_NO
    ················SUBRC··········LIKE·SY-SUBRC.
    *·Internal·field·string·for·the·document·header.
    ··DATA:·F_XHEAD·LIKE·XHEAD.
    *·Internal·table·for·the·document·items.
    ··DATA:·T_XITEM·LIKE·XITEM·OCCURS·0·WITH·HEADER·LINE.
    *·Number·given·to·the·created·document·DOCUMENT_NUMBER·LIKE·F_XHEAD-DOCMNT_NO.
    *·Move·the·data·in·the·IDoc·to·the·internal·structures/tables
    *·f_xhead·and·t_xitem.
    ··PERFORM·IDOC_INTERPRET·TABLES···T_IDOC_DATA
    ··································T_XITEM
    ··································T_IDOC_STATUS
    ·························USING····F_IDOC_CONTRL
    ·························CHANGING·F_XHEAD
    ··································SUBRC.
    *·Create·the·application·object·if·no·error·occurred·so·far.
    ··IF·SUBRC·=·0.
    *···This·fictitious·function·module·creates·a·new·object·based·on·the
    *···data·that·was·read·from·the·IDoc.·The·new·object's·ID·is·returned
    *···in·the·parameter·'document_number'.
    *···The·function·module·checks·that·the·data·is·correct,·and·raises
    *···an·exception·if·an·error·is·detected.
    ····CALL·FUNCTION·'XAMPLE_OBJECT_CREATE'
    ·········EXPORTING
    ··············XHEAD···········=·F_XHEAD
    ·········IMPORTING
    ··············DOCUMENT_NUMBER·=·DOCUMENT_NUMBER
    ·········TABLES
    ··············XITEM···········=·T_XITEM
    ·········EXCEPTIONS
    ··············OTHERS··········=·1.
    ····IF·SY-SUBRC·<>·0.
    ······SUBRC·=·1.
    *·····Put·the·error·message·into·'t_idoc_status'
    ······PERFORM·STATUS_FILL_SY_ERROR
    ················TABLES···T_IDOC_STATUS
    ················USING····T_IDOC_DATA
    ·························SY
    ·························''············"Field·name
    ·························'idoc_process_xample'.·········"Form·routine
    ····ELSE.
    *·····Fill·the·remaining·export·parameters
    ······OBJECT_NUMBER·=·DOCUMENT_NUMBER.··········"New·document's·number
    ······t_idoc_status-docnum·=·f_idoc_contrl-docnum.
    ······t_idoc_status-status·=·c_idoc_status_ok.
    ······t_idoc_status-msgty··=·'S'.
    ······t_idoc_status-msgid··=·your_msgid.·"Global·variable.
    ······t_idoc_status-msgno··=·msgno_success."Global·variable.
    ······t_idoc_status-msgv1··=·object_number.
    ······APPEND·T_IDOC_STATUS.
    ····ENDIF.·····························"if·sy-subrc·<>·0.
    ··ENDIF.·····························"if·subrc·=·0.
    ENDFORM.
    ·······FORM·IDOC_INTERPRET···········································
    ··This·routine·checks·that·the·correct·message·type·is·being·used,···
    ··and·then·converts·and·moves·the·data·from·the·IDoc·segments·to·the·
    ··internal·structure·f_xhead·and·internal·table·t_xitem.·············
    ··If·an·error·occurs,·t_idoc_status·is·filled·an·subrc·<>·0.·········
    ··-->··T_IDOC_STATUS·················································
    ··-->··T_XITEM·······················································
    ··-->··F_IDOC_DATA···················································
    ··-->··F_XHEAD·······················································
    ··-->··SUBRC·························································
    FORM·IDOC_INTERPRET·TABLES···T_IDOC_DATA····STRUCTURE·EDIDD
    ·····························T_XITEM········STRUCTURE·XITEM
    ·····························T_IDOC_STATUS··STRUCTURE·BDIDOCSTAT
    ····················USING····F_IDOC_CONTRL··STRUCTURE·EDIDC
    ····················CHANGING·F_XHEAD········STRUCTURE·XHEAD
    ·····························SUBRC··········LIKE·SY-SUBRC.
    *·Check·that·the·IDoc·contains·the·correct·message·type.
    *··Note:·if·your·message·type·is·reducible,·check·field·'idoctp'
    *·······(IDoc·type)·instead·of·'mestyp'.
    ··IF·F_IDOC_CONTRL-MESTYP·<>·'XAMPLE'.
    ····MESSAGE·ID······YOUR_MSGID···············"Global·variable
    ············TYPE····'E'
    ············NUMBER··MSGNO_WRONG_FUNCTION·····"Global·variable
    ············WITH····F_IDOC_CONTRL-MESTYP·····"message·type
    ····················'IDOC_INPUT_XAMPLE'······"Your·function·module.
    ····················F_IDOC_CONTRL-SNDPRT·····"Sender·partner·type
    ····················F_IDOC_CONTRL-SNDPRN·····"Sender·number.
    ············RAISING·WRONG_FUNCTION_CALLED.
    ··ENDIF.
    *·Loop·through·the·IDoc's·segments·and·convert·the·data·from·the·IDoc
    *·format·to·the·internal·format.
    ··LOOP·AT·T_IDOC_DATA·WHERE·DOCNUM·=·F_IDOC_CONTRL-DOCNUM.
    ····CASE·T_IDOC_DATA-SEGNAM.
    ······WHEN·'E1XHEAD'.
    ········PERFORM·E1XHEAD_PROCESS·TABLES···T_IDOC_STATUS
    ································USING····T_IDOC_DATA
    ································CHANGING·F_XHEAD
    ·········································SUBRC.
    ······WHEN·'E1XITEM'.
    ········PERFORM·E1XITEM_PROCESS·TABLES···T_XITEM
    ·········································T_IDOC_STATUS
    ································USING····F_XHEAD-CURRENCY
    ·········································T_IDOC_DATA
    ································CHANGING·SUBRC.
    ····ENDCASE.
    ··ENDLOOP.
    ENDFORM.
    ·······FORM·E1XHEAD_PROCESS··········································
    ··This·routine·fills·'f_xhead'·out·of·segment·e1xhead.·················If·an·error·occurs,·subrc·is·non-zero,·t_idoc_status·is·filled.····*
    ··-->··F_IDOC_DATA·······IDoc·segment·containing·e1xhead·fields······
    ··<--··F_XHEAD···········Internal·structure·containing·doc.·header···
    ··<--··T_IDOC_STATUS·····Status·fields·for·error·handling············
    ··<--··SUBRC·············Return·code:·non-zero·if·an·error·occurred··
    FORM·E1XHEAD_PROCESS·TABLES···T_IDOC_STATUS··STRUCTURE·BDIDOCSTAT
    ·····················USING····F_IDOC_DATA····STRUCTURE·EDIDD
    ·····················CHANGING·F_XHEAD········STRUCTURE·XHEAD
    ······························SUBRC··········LIKE·SY-SUBRC.
    ··DATA:·F_E1XHEAD·LIKE·E1XHEAD.
    ··F_E1XHEAD·=·F_IDOC_DATA-SDATA.
    *·Process·fields·that·need·conversion·from·ISO-codes·to·SAP-codes
    ··PERFORM·E1XHEAD_CODES_ISO_TO_SAP
    ·········TABLES···T_IDOC_STATUS
    ·········USING····F_E1XHEAD
    ··················F_IDOC_DATA
    ·········CHANGING·F_XHEAD
    ··················SUBRC.
    *·Process·fields·containing·dates·or·times
    ··PERFORM·E1XHEAD_DATE_TIME·USING····F_E1XHEAD
    ····························CHANGING·F_XHEAD.
    ENDFORM.·······························"e1xhead_process
    ·······FORM·E1XITEM_PROCESS··········································
    ··This·routine·converts·the·data·in·the·segment·'e1xitem'·for········
    ··to·the·format·of·table·'t_xitem'·and·appends·it·to·the·table.········If·an·error·occurs,·subrc·is·non-zero,·t_idoc_status·is·filled.····*
    ··-->··F_IDOC_DATA······IDoc·segment·································
    ··<--··T_XITEM··········Document·items·to·be·updated·to·database·····
    ··<--··T_IDOC_STATUS····Status·fields·filled·if·an·error·occurred····
    ··<--··SUBRC············Return·code:·0·if·all·OK·····················
    FORM·E1XITEM_PROCESS·TABLES···T_XITEM·······STRUCTURE·XITEM
    ······························T_IDOC_STATUS·STRUCTURE·BDIDOCSTAT
    ·····················USING····CURRENCY······LIKE·XHEAD-CURRENCY
    ······························F_IDOC_DATA···STRUCTURE·EDIDD
    ·····················CHANGING·SUBRC·········LIKE·SY-SUBRC.
    ··DATA:·F_E1XITEM·LIKE·E1XITEM.
    ··F_E1XITEM·=·F_IDOC_DATA-SDATA.
    *·Fields·of·type·CHAR,·NUMC,·QUAN·need·no·conversion.
    ··T_XITEM-ITEM_NO····=·F_E1XITEM-ITEM_NO.
    ··T_XITEM-MATERIALID·=·F_E1XITEM-MATERIALID.
    ··T_XITEM-DESCRIPT···=·F_E1XITEM-DESCRIPT.
    ··T_XITEM-QUANTITY···=·F_E1XITEM-QUANTITY.
    *·Process·fields·that·need·conversion·from·ISO-codes·to·SAP-codes
    ··PERFORM·E1XHEAD_CODES_ISO_TO_SAP
    ·········TABLES···T_IDOC_STATUS
    ·········USING····F_E1XHEAD
    ··················F_IDOC_DATA
    ·········CHANGING·F_XHEAD
    ··················SUBRC.
    *·Process·fields·that·contain·monetary·values
    ··PERFORM·E1XITEM_VALUE_IDOC_TO_SAP·TABLES···T_IDOC_STATUS
    ····································USING····F_E1XITEM
    ·············································CURRENCY
    ·············································F_IDOC_DATA
    ····································CHANGING·T_XITEM
    ·············································SUBRC.
    ··APPEND·T_XITEM.
    ENDFORM.
    ·······FORM·E1XHEAD_CODES_ISO_TO_SAP·································
    ··Converts·ISO-Codes·in·f_e1xhead·to·SAP-codes·in·f_xhead.·············f_idoc_data,·t_idoc_status·and·subrc·are·used·for·error·handling.··*
    FORM·E1XHEAD_CODES_ISO_TO_SAP
    ·······TABLES···T_IDOC_STATUS·STRUCTURE·BDIDOCSTAT
    ·······USING····F_E1XHEAD·····STRUCTURE·E1XHEAD
    ················F_IDOC_DATA···STRUCTURE·EDIDD
    ·······CHANGING·F_XHEAD·······STRUCTURE·XHEAD
    ················SUBRC.
    *·f_xhead-currency···Type·CUKY·=>·convert·ISO-Code·to·SAP-Code.
    ··PERFORM·CURRENCY_CODE_ISO_TO_SAP
    ·········TABLES···T_IDOC_STATUS
    ·········USING····F_E1XHEAD-CURRENCY
    ··················F_IDOC_DATA
    ··················'CURRENCY'
    ·········CHANGING·F_XHEAD-CURRENCY
    ··················SUBRC.
    ··CHECK·SUBRC·=·0.
    *·f_xhead-country···Contains·a·country·=>·convert·from·ISO·to·SAP·code.
    ··PERFORM·COUNTRY_CODE_ISO_TO_SAP
    ·········TABLES···T_IDOC_STATUS
    ·········USING····F_E1XHEAD-COUNTRY
    ··················F_IDOC_DATA
    ··················'COUNTRY'
    ·········CHANGING·F_XHEAD-COUNTRY
    ··················SUBRC.
    ENDFORM.
    ·······FORM·E1XITEM_CODES_ISO_TO_SAP·································
    ··Converts·ISO-Codes·in·f_e1xitem·to·SAP-codes·in·f_xitem············
    ··f_idoc_data,·t_idoc_status·and·subrc·are·used·for·error·handling.··
    FORM·E1XITEM_CODES_ISO_TO_SAP
    ·······TABLES···T_IDOC_STATUS·STRUCTURE·BDIDOCSTAT
    ·······USING····F_E1XITEM·····STRUCTURE·E1XITEM
    ················F_IDOC_DATA···STRUCTURE·EDIDD
    ·······CHANGING·F_XITEM·······STRUCTURE·XITEM
    ················SUBRC·········LIKE·SY-SUBRC.
    *·f_xitem-unit·······Type·UNIT·=>·convert·ISO-Code·to·SAP-Code.
    ··PERFORM·UNIT_OF_MEASURE_ISO_TO_SAP
    ·········TABLES···T_IDOC_STATUS
    ·········USING····F_E1XITEM-UNIT
    ··················F_IDOC_DATA
    ··················'unit'
    ·········CHANGING·F_XITEM-UNIT
    ··················SUBRC.
    *·f_xitem-ship_inst··Contains·shipping·instructions·=>·ISO·to·SAP·code.
    ··PERFORM·SHIPPING_INSTRUCT_ISO_TO_SAP
    ·········TABLES···T_IDOC_STATUS
    ·········USING····F_E1XITEM-SHIP_INST
    ··················F_IDOC_DATA
    ··················'ship_inst'
    ·········CHANGING·F_XITEM-SHIP_INST
    ··················SUBRC.
    ENDFORM.
    ·······FORM·E1XITEM_VALUE_IDOC_TO_SAP································
    ··Converts·fields·containing·monetary·values·in·f_e1xitem·to·········
    ··the·internal·representation·in·f_xitem.······························f_idoc_data,·t_idoc_status·and·subrc·are·used·for·error·handling.··*
    FORM·E1XITEM_VALUE_IDOC_TO_SAP
    ·······TABLES···T_IDOC_STATUS·STRUCTURE·BDIDOCSTAT
    ·······USING····F_E1XITEM·····STRUCTURE·E1XITEM
    ················CURRENCY······LIKE·XHEAD-CURRENCY
    ················F_IDOC_DATA···STRUCTURE·EDIDD
    ·······CHANGING·F_XITEM·······STRUCTURE·XITEM
    ················SUBRC·········LIKE·SY-SUBRC.
    *·f_xitem-value····Type·CURR·=>·convert·IDoc·amount·to·internal·amount.
    *·N.B.·the·currency·code·used·here·must·be·the·SAP-internal·one,·not
    *······the·one·contained·in·the·IDoc!
    ··CALL·FUNCTION·'CURRENCY_AMOUNT_IDOC_TO_SAP'
    ·······EXPORTING
    ············CURRENCY····=·CURRENCY
    ············IDOC_AMOUNT·=·F_E1XITEM-VALUE
    ·······IMPORTING
    ············SAP_AMOUNT··=·F_XITEM-VALUE
    ·······EXCEPTIONS
    ············OTHERS······=·1.
    ··IF·SY-SUBRC·<>·0.
    ····SUBRC·=·1.
    *···Put·the·error·message·into·'t_idoc_status'
    ····PERFORM·STATUS_FILL_SY_ERROR
    ··············TABLES···T_IDOC_STATUS
    ··············USING····F_IDOC_DATA
    ·······················SY
    ·······················'value'·········"Field·name
    ·······················'e1xitem_value_idoc_to_sap'.······"Form·routine
    ··ENDIF.·······························"if·sy-subrc·<>·0.
    ENDFORM.
    ·······FORM·E1XHEAD_DATE_TIME········································
    ··Moves·date·and·time·fields·in·f_e1xhead·to·the·fields·in·f_xhead.··
    FORM·E1XHEAD_DATE_TIME·USING····F_E1XHEAD·STRUCTURE·E1XHEAD
    ·······················CHANGING·F_XHEAD·STRUCTURE·XHEAD.
    *·f_xhead-date····Type·DATS·=>·initial·value·is·not·'blank'.
    ··IF·E1XHEAD-DATE·IS·INITIAL.
    ····CLEAR·F_XHEAD-DATE.
    ····F_XHEAD-DATE·=·F_E1XHEAD-DATE.
    ··ENDIF.
    ENDFORM.
    ·······FORM·CURRENCY_CODE_ISO_TO_SAP·································
    ··Converts·ISO·currency·code·'iso_currency_code'·to·SAP·code·in······
    ··'sap_currency_code'················································
    ··f_idoc_data,·field_name,·t_idoc_status·and·subrc·are·used·for······
    ··for·error·handling.················································
    FORM·CURRENCY_CODE_ISO_TO_SAP
    ·······TABLES···T_IDOC_STATUS·····STRUCTURE·BDIDOCSTAT
    ·······USING····ISO_CURRENCY_CODE·LIKE·TCURC-ISOCD
    ················F_IDOC_DATA·······STRUCTURE·EDIDD
    ················FIELD_NAME········LIKE·BDIDOCSTAT-SEGFLD
    ·······CHANGING·SAP_CURRENCY_CODE·LIKE·TCURC-WAERS
    ················SUBRC·············LIKE·SY-SUBRC.
    ··IF·ISO_CURRENCY_CODE·IS·INITIAL.
    ····CLEAR·SAP_CURRENCY_CODE.
    ··ELSE.
    ····CALL·FUNCTION·'CURRENCY_CODE_ISO_TO_SAP'
    ·········EXPORTING
    ··············ISO_CODE·=·ISO_CURRENCY_CODE
    ·········IMPORTING
    ··············SAP_CODE·=·SAP_CURRENCY_CODE
    ·········EXCEPTIONS
    ··············OTHERS···=·1.
    ····IF·SY-SUBRC·<>·0.
    ······SUBRC·=·1.
    *·····Put·the·error·message·into·'t_idoc_status'
    ······PERFORM·STATUS_FILL_SY_ERROR
    ················TABLES···T_IDOC_STATUS
    ················USING····F_IDOC_DATA
    ·························SY
    ·························FIELD_NAME
    ·························'currency_code_iso_to_sap'.·····"Form·routine
    ··ENDIF.·····························"if·sy-subrc·<>·0.
    ··ENDIF.·······························"if·iso_currency_code·is·initial.
    ENDFORM.
    ·······FORM·CURRENCY_CODE_ISO_TO_SAP·································
    ··Converts·ISO·currency·code·'iso_currency_code'·to·SAP·code·in······
    ··'sap_currency_code'················································
    ··f_idoc_data,·field_name,·t_idoc_status·and·subrc·are·used·for······
    ··for·error·handling.················································
    FORM·COUNTRY_CODE_ISO_TO_SAP
    ·······TABLES···T_IDOC_STATUS····STRUCTURE·BDIDOCSTAT
    ·······USING····ISO_COUNTRY_CODE·LIKE·T005-INTCA
    ················F_IDOC_DATA······STRUCTURE·EDIDD
    ················FIELD_NAME·······LIKE·BDIDOCSTAT-SEGFLD
    ·······CHANGING·SAP_COUNTRY_CODE·LIKE·T005-LAND1
    ················SUBRC············LIKE·SY-SUBRC.
    *·Only·convert·if·the·field·is·not·initial.
    ··IF·ISO_COUNTRY_CODE·IS·INITIAL.
    ····CLEAR·SAP_COUNTRY_CODE.
    ··ELSE.
    ····CALL·FUNCTION·'COUNTRY_CODE_ISO_TO_SAP'
    ·········EXPORTING
    ··············ISO_CODE·=·ISO_COUNTRY_CODE
    ·········IMPORTING
    ··············SAP_CODE·=·SAP_COUNTRY_CODE
    ·········EXCEPTIONS
    ··············OTHERS···=·1.
    ····IF·SY-SUBRC·<>·0.
    ······SUBRC·=·1.
    *·····Put·the·error·message·into·'t_idoc_status'
    ······PERFORM·STATUS_FILL_SY_ERROR
    ················TABLES···T_IDOC_STATUS
    ················USING····F_IDOC_DATA
    ·························SY
    ·························FIELD_NAME
    ·························'country_code_iso_to_sap'.······"Form·routine
    ··ENDIF.·····························"if·sy-subrc·<>·0.
    ··ENDIF.·······························"if·iso_country_code·is·initial.
    ENDFORM.
    ·······FORM·UNIT_OF_MEASURE_ISO_TO_SAP·······························
    ··Converts·ISO·unit·of·measure·code·'iso_unit_of_measure'·to·SAP·····
    ··code·in·'sap_unit_of_measure'.·····································
    ··f_idoc_data,·field_name,·t_idoc_status·and·subrc·are·used·for······
    ··for·error·handling.················································
    FORM·UNIT_OF_MEASURE_ISO_TO_SAP
    ·······TABLES···T_IDOC_STATUS·······STRUCTURE·BDIDOCSTAT
    ·······USING····ISO_UNIT_OF_MEASURE·LIKE·T006-ISOCODE
    ················F_IDOC_DATA·········STRUCTURE·EDIDD
    ················FIELD_NAME··········LIKE·BDIDOCSTAT-SEGFLD
    ·······CHANGING·SAP_UNIT_OF_MEASURE·LIKE·T006-MSEHI
    ················SUBRC···············LIKE·SY-SUBRC.
    *·Only·convert·the·field·if·it·is·not·empty.
    ··IF·ISO_UNIT_OF_MEASURE·IS·INITIAL.
    ····CLEAR·SAP_UNIT_OF_MEASURE.
    ··ELSE.
    ····CALL·FUNCTION·'UNIT_OF_MEASURE_ISO_TO_SAP'
    ·········EXPORTING
    ··············ISO_CODE·=·ISO_UNIT_OF_MEASURE
    ·········IMPORTING
    ··············SAP_CODE·=·SAP_UNIT_OF_MEASURE
    ·········EXCEPTIONS
    ··············OTHERS···=·1.
    ····IF·SY-SUBRC·<>·0.
    ······SUBRC·=·1.
    *·····Put·the·error·message·into·'t_idoc_status'
    ······PERFORM·STATUS_FILL_SY_ERROR
    ················TABLES···T_IDOC_STATUS
    ················USING····F_IDOC_DATA
    ·························SY
    ·························FIELD_NAME
    ·························'unit_of_measure_iso_to_sap'.··"Form·routine
    ··ENDIF.·····························"if·sy-subrc·<>·0.
    ··ENDIF.··················"if·iso_unit_of_measure_code·is·initial.
    ENDFORM.
    ·······FORM·SHIPPING_INSTRUCT_ISO_TO_SAP·····························
    ··Converts·ISO·package·code·'iso_package_type'·to·SAP·code·for·······
    ··purchasing·shipping·instructions·in·'sap_shipping_instructions'.···
    ··f_idoc_data,·field_name,·t_idoc_status·and·subrc·are·used·for······
    ··for·error·handling.················································
    FORM·SHIPPING_INSTRUCT_ISO_TO_SAP
    ·······TABLES···T_IDOC_STATUS·············STRUCTURE·BDIDOCSTAT
    ·······USING····ISO_PACKAGE_TYPE··········LIKE·T027A-IVERS
    ················F_IDOC_DATA···············STRUCTURE·EDIDD
    ················FIELD_NAME················LIKE·BDIDOCSTAT-SEGFLD
    ·······CHANGING·SAP_SHIPPING_INSTRUCTIONS·LIKE·T027A-EVERS
    ················SUBRC·····················LIKE·SY-SUBRC.
    *·Only·convert·the·field·if·it·is·not·empty.
    ··IF·ISO_PACKAGE_TYPE·IS·INITIAL.
    ····CLEAR·SAP_SHIPPING_INSTRUCTIONS.
    ··ELSE.
    ····CALL·FUNCTION·'ISO_TO_SAP_PACKAGE_TYPE_CODE'
    ·········EXPORTING
    ··············ISO_CODE·=·ISO_PACKAGE_TYPE
    ·········IMPORTING
    ··············SAP_CODE·=·SAP_SHIPPING_INSTRUCTIONS
    ·········EXCEPTIONS
    ··············OTHERS···=·1.
    ····IF·SY-SUBRC·<>·0.
    ······SUBRC·=·1.
    *·····Put·the·error·message·into·'t_idoc_status'
    ······PERFORM·STATUS_FILL_SY_ERROR
    ················TABLES···T_IDOC_STATUS
    ················USING····F_IDOC_DATA
    ·························SY
    ·························FIELD_NAME
    ·························'shipping_instruct_iso_to_sap'.·"Form·rout.
    ··ENDIF.·····························"if·sy-subrc·<>·0.
    ··ENDIF.··················"if·iso_unit_of_measure_code·is·initial.
    ENDFORM.
    ·······FORM·STATUS_FILL_SY_ERROR·····································
    ··Fills·the·structure·t_idoc_status·with·the·import·parameters·······
    ··plus·the·relevant·sy·fields.·······································
    ··-->··IDOC_NUMBER···········IDoc·number·····························
    ··-->··SEGNUM················Segment·number··························
    ··-->··SEGFLD················Field·in·segment························
    ··-->··ROUTID················Name·of·routine·························
    ··<--··T_IDOC_STATUS·········Status·fields···························
    FORM·STATUS_FILL_SY_ERROR·TABLES···T_IDOC_STATUS·STRUCTURE·BDIDOCSTAT
    ··························USING····F_IDOC_DATA···STRUCTURE·EDIDD
    ···································VALUE(F_SY)···STRUCTURE·SY
    ···································SEGFLD········LIKE·BDIDOCSTAT-SEGFLD
    ···································ROUTID········LIKE·BDIDOCSTAT-ROUTID.
    ··t_idoc_status-docnum·=·f_idoc_data-docnum.
    ··t_idoc_status-status·=·c_idoc_status_error.
    ··t_idoc_status-msgty··=·f_sy-msgty.
    ··t_idoc_status-msgid··=·f_sy-msgid.
    ··T_IDOC_STATUS-MSGNO··=·F_SY-MSGNO.
    ··t_idoc_status-msgv1··=·f_sy-msgv1.
    ··t_idoc_status-msgv2··=·f_sy-msgv2.
    ··t_idoc_status-msgv3··=·f_sy-msgv3.
    ··t_idoc_status-msgv4··=·f_sy-msgv4.
    ··t_idoc_status-segnum·=·f_idoc_data-segnum.
    ··t_idoc_status-segfld·=·segfld.
    ··t_idoc_status-repid··=·f_sy-repid.
    ··t_idoc_status-routid·=·routid.
    ··APPEND·T_IDOC_STATUS.
    ENDFORM.
    Also Check out these docs.
    http://help.sap.com/saphelp_nw04/helpdata/en/dc/6b7ee143d711d1893e0000e8323c4f/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/1a/178ad32d3011d3bc3500105a6588b2/frameset.htm
    Dont forget to reward pts, if it helps ;>)
    Regards,
    Rakesh.

  • Using ABAP memory during IDOC processing

    What are implications , issues of using ABAP memory in IDOC processing i.e. let say in inbound FM , I create implicit enhancement and I submit a report and return  and pass data to this report via abap memory. What are implications ? Is it recommended to use this approach since many number of IDOCs are hitting the system and orders are getting posted.
    Please suggest . Thanks in advance.

    Hello Jürgen,
    Thanks a lot for this OSS Note. So it seems the issue is some kind of a program error that requires source code correction. I am in process of getting this note applied in our SAP environment. Hopefully, it solves my problem. I will definitely keep you posted.
    Thanks again for your quick help.
    Regards,
    EssKay

  • Config Check During IDOC Processing

    Hello experts:
    I am attempting to extend a material to a plant with IDOC.  I can get it to work, however I was bumping into required fields that I do not see, and are not altered to, being required when I enter values manually in SAP. 
    For example if extend data to the MRP2 tab manually, I am not told any fields are required and I can save with no problem.  When I extend with the IDOC, if says a field is required.  Once I provide it iin the IDoc it works. 
    Is there some kind of different IDoc cofig check that happen that are hidden when you enter data into SAP manually?
    Thanks all.

    I think I just solved this one actually.  At this point I think there is no special IDoc check.  The inbound IDoc process is checking config correctly.  Will post back soon if I am wrong.

  • Suppress Warning/Information Messages in Idoc Processing

    Hi,
    Is there any way through which I can suppress all the warning/information messages in Inbound Idoc processing.
    I was trying to create some Sales Orders from Idocs. But, the problem is Idoc is getting failed with status as 51 and displays the status message as the warning/information message that has been written in the userexit. However, the Sales Order is getting saved successfully.
    Is there any setting through which I can override this?
    Thanks in advance.
    -Babu Kilari

    @ Brad....
    It is working in our development box and not in testing box. So, do you think this is an issue ?
    @ Bhat.....
    I tried the way you said. But, it didnt help.
    Any other help will be appreciated!!!
    Thanks in advance
    -Babu Kilari

Maybe you are looking for

  • Why is ical creating unwanted alerts for all-day events?

    If anyone can point to what might be going wrong here I'd be grateful. This is becoming a daily irritant. I have a number of all-day events listed for most week days in my diary which help me to know what is happening that day with childcare for my s

  • Validation for the select option value range of selection screen

    Hi All. if i wish to validate the selection screen parameter for a value range(select options),is it possible? what should i write in code.Also,m using FM DD_DOMVALUES_GET to get the values for a specific domain name. Please reply.

  • Is it Production yet ?

    http://www.oracle.com/technology/products/database/sql_developer/index.html suggests it is now a production version, but the licence screen that pops up is still Early Adopter. Is the actual download the last EA edition, the first Production edition,

  • Which index?

    Hi, I've a view which takes the most rows of a table. Now i read that if a query takes more than 20% of rows from a table the index don't be used. This my view: CREATE OR REPLACE VIEW EULVIS_STROM_STAMM ( INTERNENUMMER, ANLAGENNUMMER, KUNDENNUMMER, M

  • When my iphone makes a sound it comes out distorted, why and how can I fix it?

    Whenever my iphone makes any sort of sound (video, music, lock sound, ect) it sounds distorted and demon like? I know that sounds weird but thats the only way I can think of accuratly describing it. It started doing that today and idk, I didn't drop