Exception handling for Inbound IDoc

Hi,
I have a Flat File to IDoc Scenario. Flat file is an EDI 210 message. I will serialize and tranform EDI210 into IDoc.
I want to capture the exceptions from the flat file during serialization. My schema will have exception structure.
How do i deal with the exception. Do i display the exception in XI or should i send it to SAP system(Receiver)? What is the best approach?
Note : I believe IDoc does not have any exception structure.
Kindly Advice.
Thanks & Regards,
Gowri

Hi Gowri,
In this case whenever you get Mapping Exception , you can raise an Exception with the help of BPM and you can send the status to the RFC. But with the help of BPM.
For a Simple case refer:
http://help.sap.com/saphelp_nw2004s/helpdata/en/33/4a773f12f14a18e10000000a114084/frameset.htm
If you want you can do it without a BPM
and throw an exception in case any of the values is missing:
have a look at this weblog on how to throw exceptions
in a nice way:
/people/alessandro.guarneri/blog/2006/01/26/throwing-smart-exceptions-in-xi-graphical-mapping
Also just go through <a href="/people/sap.user72/blog/2005/02/23/raising-exceptions-in-sap-xi-mapping Exceptions in SAP XI Mapping</a> and see if it helps you solve the problem.
Also go through these links:
http://help.sap.com/saphelp_nw04/helpdata/en/dc/6b7f2243d711d1893e0000e8323c4f/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/68/253239bd1fa74ee10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/cf/f2bbc8142c11d3b93a0000e8353423/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/5d/2166e6a91d11d188de0000e8216438/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/05/bb223905b61b0ae10000000a11402f/content.htm
Please do let know if it helped.
Regards,
Abhy

Similar Messages

  • How to implement Exception Handling error in IDoc to File and RFC to File

    Hi,
    We are implementing the two below scenarios :
    1. IDOC to File
    2. RFC to File
    We have to implement the Exception Handling for the above two cases. Kindly could you provide the inputs to implement the Exception Handling for the above two cases.
    Please provide the precious inputs to implement this.
    Thanks,
    Ramesh

    Hi Ramesh,
    The exception handling for idocs
    http://help.sap.com/saphelp_nw04/helpdata/en/dc/6b7f1543d711d1893e0000e8323c4f/frameset.htm
    Exception handling in File to IDoc Scenario
    For RFCs
    Re: Passing SAP Exceptions to a sync SOAP Call
    Error Handling when using RFC
    Exception Handling while Calling RFC - BPM
    handle exceptions in remote function modules
    Regards,
    Prateek

  • Exception handling for all the insert statements in the proc

    CREATE PROCEDURE TEST (
    @IncrStartDate DATE
    ,@IncrEndDate DATE
    ,@SourceRowCount INT OUTPUT
    ,@TargetRowCount INT OUTPUT
    ,@ErrorNumber INT OUTPUT
    ,@ErrorMessage VARCHAR(4000) OUTPUT
    ,@InsertCase INT --INSERT CASE INPUT
    WITH
    EXEC AS CALLER AS
    BEGIN --Main Begin
    SET NOCOUNT ON
    BEGIN TRY
    DECLARE @SuccessNumber INT = 0
    ,@SuccessMessage VARCHAR(100) = 'SUCCESS'
    ,@BenchMarkLoadFlag CHAR(1)
    ,@BenchmarkFlow INT
    ,@MonthYearStart DATE
    ,@MonthYearEnd DATE
    ,@StartDate DATE
    ,@EndDate DATE
    /* Setting the default values of output parameters to 0.*/
    SET @SourceRowCount = 0
    SET @TargetRowCount = 0
    /*Setting the Start and end date for looping */
    SET @MonthYearStart = @IncrStartDate;
    SET @MonthYearEnd = @IncrEndDate;
    /* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
    @InsertCase =0 means data will be inserted in the target TAB1
    @InsertCase =1 means data will be inserted in the target TAB2
    @InsertCase =2 means data will be inserted in the target TAB3
    @InsertCase =3 means data will be inserted in the target TAB4
    @InsertCase =4 means data will be inserted in the target TAB5
    @InsertCase =5 means data will be inserted in the target TAB6
    if @InsertCase =0
    WHILE (@MonthYearStart <= @MonthYearEnd)
    BEGIN
    SET @StartDate = @MonthYearStart;
    SET @EndDate = @MonthYearEnd;
    /* Delete from target where date range given from input parameter*/
    DELETE FROM TAB1
    WHERE [MONTH] BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
    AND [YEAR] BETWEEN year(@StartDate) and year(@EndDate)
    /*Insert data in target-TAB1 */
    BEGIN TRANSACTION
    INSERT INTO TAB1
    A,B,C
    SELECT
    A,BC
    FROM XYZ
    COMMIT TRANSACTION
    SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
    SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
    END -- End of whileloop
    END TRY
    BEGIN CATCH
    IF @@TRANCOUNT>0
    ROLLBACK TRANSACTION
    SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
    END CATCH
    END--End of Main Begin
    I have the above proc inserting data based on parameters  where in @InsertCase  is used for case wise execution.
     I have written the whole proc with exception handling using try catch block.
    I have just added one insert statement here for 1 case  now I need to add further insert  cases
    INSERT INTO TAB4
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    INSERT INTO TAB3
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    INSERT INTO TAB2
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    I will be using following to insert further insert statements 
    if @InsertCase =1 
    I just needed to know where will be my next insert statement should be fitting int his code so that i cover exception handling for all the code
    Mudassar

    Hi Erland & Mudassar, I have attempted to recreate Mudassar's original problem..here is my TABLE script;
    USE [MSDNTSQL]
    GO
    /****** Object: Table [dbo].[TAB1] Script Date: 2/5/2014 7:47:48 AM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[TAB1](
    [COL1] [nvarchar](1) NULL,
    [COL2] [nvarchar](1) NULL,
    [COL3] [nvarchar](1) NULL,
    [START_MONTH] [int] NULL,
    [END_MONTH] [int] NULL,
    [START_YEAR] [int] NULL,
    [END_YEAR] [int] NULL
    ) ON [PRIMARY]
    GO
    Then here is a CREATE script for the SPROC..;
    USE [MSDNTSQL]
    GO
    /****** Object: StoredProcedure [dbo].[TryCatchTransactions1] Script Date: 2/5/2014 7:51:33 AM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE PROCEDURE [dbo].[TryCatchTransactions1] (
    @IncrStartDate DATE
    ,@IncrEndDate DATE
    ,@SourceRowCount INT OUTPUT
    ,@TargetRowCount INT OUTPUT
    ,@ErrorNumber INT OUTPUT
    ,@ErrorMessage VARCHAR(4000) OUTPUT
    ,@InsertCase INT --INSERT CASE INPUT
    WITH
    EXEC AS CALLER AS
    BEGIN --Main Begin
    SET NOCOUNT ON
    BEGIN TRY
    DECLARE @SuccessNumber INT = 0
    ,@SuccessMessage VARCHAR(100) = 'SUCCESS'
    ,@BenchMarkLoadFlag CHAR(1)
    ,@BenchmarkFlow INT
    ,@MonthYearStart DATE
    ,@MonthYearEnd DATE
    ,@StartDate DATE
    ,@EndDate DATE
    /* Setting the default values of output parameters to 0.*/
    SET @SourceRowCount = 0
    SET @TargetRowCount = 0
    /*Setting the Start and end date for looping */
    SET @MonthYearStart = @IncrStartDate;
    SET @MonthYearEnd = @IncrEndDate;
    /* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
    @InsertCase =0 means data will be inserted in the target TAB1
    @InsertCase =1 means data will be inserted in the target TAB2
    @InsertCase =2 means data will be inserted in the target TAB3
    @InsertCase =3 means data will be inserted in the target TAB4
    @InsertCase =4 means data will be inserted in the target TAB5
    @InsertCase =5 means data will be inserted in the target TAB6
    IF @InsertCase =0
    WHILE (@MonthYearStart <= @MonthYearEnd)
    BEGIN
    SET @StartDate = @MonthYearStart;
    SET @EndDate = @MonthYearEnd;
    /* Delete from target where date range given from input parameter*/
    DELETE FROM TAB1
    WHERE START_MONTH BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
    AND START_YEAR BETWEEN year(@StartDate) and YEAR(@EndDate)
    /*Insert data in target-TAB1 */
    BEGIN TRANSACTION
    INSERT INTO TAB1 (COL1,COL2,COL3)
    VALUES ('Z','X','Y')
    SELECT COL1, COL2, COL3
    FROM TAB1
    COMMIT TRANSACTION
    SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
    SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
    END -- End of whileloop
    END TRY
    BEGIN CATCH
    IF @@TRANCOUNT > 0
    ROLLBACK TRANSACTION
    SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
    END CATCH
    PRINT @SUCCESSMESSAGE
    END--End of Main Begin
    GO
    I am just trying to help --danny rosales
    UML, then code

  • Partner profile for INBOUND IDOC

    Dear experts,
    Need your help to define partner profile for inbound idoc to R/3 system. There is a third party (Non SAP) based application from which idocs need to be sent to the R/3 system. There is no need to send an outbound idoc from the R/3 system. Can some one please suggest what are the steps to be taken  to b configure the partner profile  in the R/3 system for the inbound idoc?
    Thanks,
    Priyanka

    Hi
    This is not the right location to post this question.
    You got to post this query in Data transfers section of SDN ABAP Development forums
    Now regarding your question,
    You need to create a Logical System with the help of the transaction SALE.
    Assign the created LS to the client with the help of same transaction
    Go to WE20 and create the partner with the same Logical System name
    Now..as you are recieving the Inbound Idoc from external Non-SAP System, you need to maintain the message type in the Inbound Parameters by clicking on ADD Icon over there.
    Before doing the above step, you got to create the connection between SAP and Non-SAP System.
    Use transaction SM59 to do this. Type of connection would be R/3 I guess
    Thanks
    Hope it helps.

  • Exception Handling for many bean objects of a container class in a JSP page

    Hello,
    I have on container bean class. In this container class, there are several others class objects and the getter methods to get these objects out to the JSP pages.
    I have one JSP page which will use different objects in the container class object through the getter methods of the container class.
    My question is how to implement the exception handler for all the objects in the container so that the JSP page can handle all exceptions if occurrs in any object in the container?
    Please give me some suggestions. Thanks
    Tu

    Thanks for your reply.
    Since the container is the accessor class, I have no other super class for this container class, I think I will try the try catch block in the getter methods.

  • Process code for inbound idoc's

    hi  friend,
    i want to create a zprocess code for inbound idoc's pls i want to step or code.
    regrads and thanks

    Hi
    Are you using the customised idoc i:e message type .I hope most of the data transfer techniques always has a standard message type and if you are using one such than you can check in transaction we42(inbound process code) .All the steps have been rightly been mentioned for this querry of yours if you can clearly explain as to what message type are you using and for what purpose i can send you with documentation with steps to you.At the end of the day you will be posting idocs so that the data is being reflected in the segments .The things to be noted down is :-
    1.Maintain Partner Profile(we20) which is the sender system are you using ?
    2.If the satus is 53 it is sucess(green ) else 64(being processed-yellow) or 51(error-red)
    3.If you trigger by workflow than you have to use Message Variant .
                     If you are ok or incase do face any issues please do reply to the forum.
    Regards
    Somnath

  • Exception handling for ProjectService methods in a new 2006 DI API

    Normally for other objects the Add() method returns error code and calling the GetLastError you get the description.
    AddProject(Project) method of ProjectService returns ProjectParams object.
    So the question is where to get the error code or what is the correct exception handling for that new methods in 2006 SDK.
    Thanks for any help.
    Tomas

    Hi all,
    I have a sceranio :
    I created the text field, text box, com bobox .etc, on new form or exist form.
    When I want to bind data into UDO, i use "DataBind.setBound"
    ex:"oEdit.DataBind.SetBound(True, "@SM_OMOR", "U_Room")"
    Can i bind the data to exist table on B1?
    ex: oEdit.DataBind.setBound(True, "OHEM", "firstName")
    Plz guid !
    Rgds !

  • EOIO should be enabled for Inbound IDocs to SAP

    Hi All,
    My Interface requirement:
    i want to send my IDoC's to SAP ECC from SAP PI using IDoc Adapter in EOIO manner. so i have followed the below link.
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/96/791c42375d5033e10000000a155106/frameset.htm
    1)I have have enabled EOIO in sender File adapter.
    2)i have checked the Queue Processing in IDoC adapter.
    assumed that IDocs are processing in EOIO manner. for proving the same, i have stopped the RFCUSER which is in ECC to process the IDOCs to SAP.
    but still messages are stuck in Trfc queue, so i am thinking that EOIO is not enabled as messages are not stuck in SMQ1.
    how to achive EOIO for inbound IDoCS??
    Thank You,
    Madhav

    Hi
    It's fine that messages are not stuck in smq2 on PI side. You set in smq1 system, connection and assing connetion pool numer and meesage is transfered to Ecc using common connection. On target Ecc check tcode WEINBQUEUE.
    Br
    Maciej

  • User exit for inbound idoc

    could anyone please tell the user exit for inbound idoc : ACC_POSTING_GL01

    I thnk the inbound idoc name is ACC_GL_POSTING01. User Exit for this is EXIT_SAPLACC4_001.
    *****Reward points if useful
    Regards,
    Kiran Bobbala

  • May I use Exception Handling for validation ?

    Hello All,
    Can any one know about that may i use exception handling for validation in my report program.
    Please if its possible then give me some Example...
    Thanks.

    Hi Niraj,
    Exception is not at all raised or handled in the given example.
    There are so many document available in the SCN regarding OO ABAP you can read that.
    As far as validation of a field ( Selection screen ) of course we can do that but I don't see any advantage more over it will make your code unnecessarily complex.
    Regards
    Bikas

  • 2007A: Exception handling for new ProjectService methods

    Normally for other objects the Add() method returns error code and calling the GetLastError you get the description.
    AddProject(Project) method of ProjectService returns ProjectParams object.
    So the question is where to get the error code or what is the correct exception handling for that new methods in 2006 SDK.
    Thanks for any help.
    Tomas

    Hi Thomas,
    For DI API services there is no return code as for the basic objects methods like Add, Update,...
    The only way is then to put try/catch blocks in your code and identify the error message with the Exception.Message property (same mechanism as we have for the UI API). No way to filter them by return code.
    Regards
    Trinidad.

  • Sample files for inbound IDOC's( EDI)

    Hi All,
    I am trying to get idoc's into system using EDI , wanted sample files for inbound idocs using EDI.
    If someone could send the files please.
    rgds
    Ajay Sharma

    HI,
    Here one sample file.U need to change the sender/receiver ID's accordingly to the setup at ur EDI subsystem.This 850 i/b file will create an ORDERS idoc in SAP.
    ISA³00³          ³00³          ³01³006906614GE    ³01³040986076      ³060714³0640³U³00401³000012157³1³P³>~
    GS³PO³006906614GE³040986076³20060714³0640³5008³X³004010~
    ST³850³020700691~
    BEG³00³NE³020700691³³20060714~
    N1³BS³ABC PHOENIX DIVISION³11³RA0290837~
    N1³SU³³11³II7930501~
    PO1³1³12³EA³123.45³³ND³0469520260~
    PO1³2³24³EA³190.23³³ND³0469520211~
    CTT³2~
    SE³8³020700691~
    ST³850³057796284~
    BEG³00³NE³057796284³³20060714~
    N1³BS³ABC RALEIGH DIVISION³11³RA0289036~
    N1³SU³³11³II7930501~
    PO1³1³48³EA³61.72³³ND³0469520230~
    PO1³2³12³EA³123.45³³ND³0469520260~
    PO1³3³6³EA³190.23³³ND³0469520211~
    CTT³3~
    SE³9³057796284~
    GE³2³5008~
    IEA³1³000012157~
    Also u can check in the system and find some ORDERS
    idocs and u can retrigger that from WE19.
    reward if helpfulll
    ram

  • Step-by step procedure for INBOUND IDOC (VENDOR CREATE / CHANGE)

    Hi ,
    Can any body provide me the step-by-step procedure for Inbound IDOCS.
    As i'm new to this i need the the clarification between Inbound & outbound idocs.
    How can we differentiate both?
    where to define outbound & where to define Inbound?
    ( If possible Please explain me the procedure for  Vendor Create through INBOUND IDOCS )
    Thanks in advance..

    Hi,
    Ale Technology is SAPu2019s technology to support distributed yet integrated processes across several SAP systems.
    Outbound Process:
    ALE Outbound Process in SAP sends data to one or more SAP Systems. It involves four steps.
    1. Identify the need of IDoc: This step starts upon creating a application document, can relate to a change to a master data object.
    2. Generate the Master IDoc: The document or master data to be sent is read from the database and formatted into an IDoc format. This IDoc is called as a Master IDoc.
    3. Generate the Communication IDoc: The ALE Service layer generates a separate IDoc from the Master IDoc for each recipient who is interested in the data. Separate IDocs are generated because each recipient might demand a different version or a subset of the Master IDoc. These recipient-specific IDocs are called Communication IDocs and are stored in the database.
    4. Deliver the Communication IDoc: The IDoc is delivered to the recipients using an asynchronous communication method. This allows the sending system to continue its processing without having to wait for the destination system to receiver or process the IDoc.
    Inbound Process:
    The inbound process receives an IDoc and creates a document in the system.
    1. Store the IDoc in the database: The IDoc is received from the sending system and stored in the database. Then the IDoc goes through a basic integrity check and syntax check.
    2. Invoke the Posting Module: The control information in the IDoc and configuration tables are read to determine the posting program. The IDoc is then transferred to its posting program.
    3. Create the Document: The posting program reads the IDoc data and then creates a document in the system. The results are logged in the IDoc.
    Over view of IDocs:
    IDoc is a container that is used to exchange data between any two processes. The document represented in an IDoc is independent of the complex structure SAP uses to store application data. This type of flexibility enables SAP to rearrange its internal structure without affecting the existing interface.
    IDoc interface represents an IDoc Type or IDoc data. IDoc Type represents IDocu2019s definition and IDoc Data is an instance of the IDoc Type.
    IDoc Types:
    IDoc type structure can consist of several segments, and each segment can consist of several data fields. The IDoc structure defines the syntax of the data by specifying a list of permitted segments and arrangement of the segments. Segments define a set of fields and their format.
    An IDoc is an instance of an IDoc Type and consists of three types of records.
    i. One Control record: each IDoc has only one control record. The control record contains all the control information about an IDoc, including the IDoc number, the sender and recipient information, and information such as the message type it represents and IDoc type. The control record structure is same for all IDocs.
    ii. One or Many Data records: An IDoc can have multiple data records, as defined by the IDoc structure. Segments translate into data records, which store application data, such as purchase order header information and purchase order detail lines.
    iii. One or Many Status records: An IDoc can have multiple status records. Status record helps to determine whether an IDoc has any error.
    Message in IDoc Type:
    A Message represents a specific type of document transmitted between two partners.
    Outbound Process in IDocs:
    Outbound process used the following components to generate an IDoc. A customer model, and IDoc structure, selection programs, filter objects, conversion rules, a port definition, an RFC destination, a partner profile, service programs, and configuration tables.
    The Customer Model:
    A customer model is used to model a distribution scenario. In a customer model, you identify the systems involved in a distribution scenario and the message exchanged between the systems.
    Message control:
    Message control is a cross application technology used in pricing, account determination, material determination, and output determination. The output determination technique of Message control triggers the ALE for a business document. Message control separates the logic of generating IDocs from the application logic.
    Change Pointers:
    The change pointers technique is based on the change document technique, which tracks changes made to key documents in SAP, such as the material master, customer master and sales order.
    Changes made to a document are recorded in the change document header table CDHDR, and additional change pointers are written in the BDCP table for the changes relevant to ALE.
    IDoc Structure:
    A message is defined for data that is exchanged between two systems. The message type is based on one or more IDoc structures.
    Selection Program:
    Is typically implemented as function modules, are designed to extract application data and create a master IDoc. A selection program exists for each message type. A selection programu2019s design depends on the triggering mechanism used in the process.
    Filter Objects;
    Filter Objects remove unwanted data for each recipient of the data basing on the recipients requirement.
    Port Definition:
    A port is used in an outbound process to define the medium in which documents are transferred to the destination system. ALE used a Transactional RFC port, which transfers data in memory buffers.
    RFC Destination:
    The RFC destination is a logical name used to define the characteristics of a communication link to a remote system on which a function needs to be executed.
    Partner Profile:
    A partner profile specifies the components used in an outbound process(logical name of the remote SAP system, IDoc Type, message type, TRFC port), an IDocu2019s packet size, the mode in which the process sends an IDoc (batch versus immediate), and the person to be notified in case of error.
    Service Programs and Configuration Tables:
    The outbound process, being asynchronous, is essentially a sequence of several processes that work together. SAP provides service programs and configuration tables to link these programs and provide customizing options for an outbound process.
    Process flow for Distributing Transactional Data:
    Transactional data is distributed using two techniques: with Message control and without message control.
    Process flow for Distributing Master Data:
    Master data between SAP systems is distributed using two techniques: Stand alone Programs and Change Pointers.
    Triggering the Outbound Process via Stand-Alone Programs:
    Stand-Alone programs are started explicitly by a user to transmit data from one SAP system to another. Standard Programs for several master data objects exist in SAP. Ex. The material master data can be transferred using the RBDSEMAT program or transaction BD10.
    The stand-alone programs provide a selection screen to specify the objects to be transferred and the receiving system. After the stand-alone program is executed, it calls the IDoc selection program with the specified parameters.
    Triggering the Outbound Process via Change Pointers:
    The change pointer technique is used to initiate the outbound process automatically when master data is created or changed.
    A standard program, RBDMIDOC, is scheduled to run on a periodic basis to evaluate the change pointers for a message type and start the ALE process for distributing the master data to the appropriate destination. The RBDMIDOC program reads the table TBDME to determine the IDoc selection program for a message type.
    Processing in the Application Layer:
    The customer distribution model is consulted to make sure that a receiver has been defined for the message to be transmitted. If not, processing ends. If at least one receiver exists, the IDoc selection program reads the master data object from the database and creates a master IDoc from it. The master IDoc is stored in memory. The program then calls the ALE service layer by using the function module MASTER_IDOC_DISTRIBUTE, passing the master IDoc and the receiver information.
    Processing in the ALE Interface Layer:
    Processing in the ALE Layer consists of the following steps:
    u2022 Receiver Determination: The determination of the receiver is done through Customer Distribution Model.
    u2022 IDoc Filtering: if an IDoc filter is specified in the distribution model for a receiver, values in the filter are compared against the values in the IDoc data records. If a data record does not meet the filter criteria, it is dropped.
    u2022 Segment Filtering: For each sender and receiver combination, a set of segments that are not required can be filtered out.
    u2022 Field conversion: Field values in data records are converted by using the conversion rules specified for the segment.
    u2022 Version change for segments: Segments are version-controlled. A new version of a segment always contains fields from the preceding version and fields added for the new version. Release in IDoc type field of the partner profile to determine the version of the segment to be generated.
    u2022 Version change for IDocs: IDocs are also version controlled. The version is determined from the Basic Type field of the partner profile.
    u2022 Communication IDocs generated: The final IDoc generated for a receiver after all the conversions and filtering operations is the communication IDoc. One master IDoc can have multiple communication IDocs depending on the number of receivers identified and the filter operations performed. IDoc gets the status record with a status code of 01 (IDoc Created).
    u2022 Syntax check performed: IDoc goes through a syntax check and data integrity validation. If errors found the IDoc get the status of 26 (error during syntax check of IDoc u2013 Outbound). If no errors found the IDoc gets the status 30 (IDoc ready for dispatch u2013 ALE Service).
    u2022 IDoc dispatched to the communication Layer: In the ALE process, IDocs are dispatched using the asynchronous RFC method, which means that the sending system does not await for data to be received or processed on the destination system. After IDocs have been transferred to the communication layer, they get a status code 01 (Data Passed to Port OK).
    Processing in the Communication Layer:
    To dispatch an IDoc to a destination system, the system reads the port definition specified in the partner profile to determine the destination system, which is then used to read the RFC destination. The RFC destination contains communication settings to log o to the remote SAP system. The sending system calls the INBOUND_IDOC_PROCESS function module asynchronously on the destination system and passes the IDoc data via the memory buffers.
    Inbound Process in IDocs:
    An inbound process used IDoc structure, posting programs, filter objects, conversion rules, a partner profile, service programs, and configuration tables to post an application document from an IDoc.
    Posting Program:
    Posting programs, which are implemented as function modules, read data from an IDoc and create an application document from it. A posting program exists for each message. Each posting program is assigned a process code. A process code can point to a function module or a work flow. In the standard program process codes always point to a function module.
    Ex. The posting program for message type MATMAS is IDOC_INPUT_MATMAS which has a process code MATM.
    Workflow:
    A workflow represents a sequence of customized steps to be carried out for a process. The workflow management system is used to model the sequence, identify information required to carry out the steps and identify the person responsible for the dialog steps.
    Partner Profile;
    A partner profile specifies the components used in an inbound process (partner number, message type, and process code), the mode in which IDocs are processed (batch versus immediate), and the person to be notified in case of errors.
    Process flow for the Inbound process via a Function Module:
    In this process, IDocs are received from another system and passed to the posting function module directly.
    1. Processing in the communication Layer:
    The IDOC_INBOUND_ASYCHRONOUS program, triggered as a result of an RFC from the sending system, acts as the entry point for all inbound ALE processes. The IDoc to be processed is passed as an input parameter. Control is transferred to the ALE/EDI layer.
    2. Processing in the ALE/EDI Interface Layer:
    u2022 Basic integrity check: A basic integrity check is performed on the control record.
    u2022 Segment Filtering and conversion: Filtering out unwanted segments and carry out any required conversion of field values.
    u2022 Creation of Application IDoc: The application IDoc is created and stored in the database and a syntax check is performed. If there are errors it gets status code of 60 (Error during Syntax check of IDoc u2013 Inbound). At this point a tangible IDoc, which can be monitored via one of the monitoring transactions, is created and the IDoc gets status code 50 (IDoc Added).
    u2022 IDoc Marked ready for Dispatch: IDoc gets the status code 64 (IDoc ready to be passed to application).
    u2022 IDoc is passed to the posting program: The partner profile table is read. If the value of the Processing field is set to Process Immediately, the IDoc is passed to the posting program immediately using the program RBDAPP01.
    3. Processing in the Posting Module:
    The process code in the partner profile points to a posting module for the specific message in the IDoc. The posting program implemented as a function module either calls a standard SAP transaction by using the Call Transaction command for posting the document or invokes a direct input function module.
    The results of execution are passed back via the function moduleu2019s output parameters. If the posting is successful IDoc gets the status code 53 (Application Document Posted) or it gets status code 51 (Error: Application Document Not Posted).

  • Handling of Error(s) for Inbound IDOCs

    Hi Gurus,
      I have an requirement where we need to handle and correct the error if inbound IDOC fails. This inbound will be for Account Document posting.
    Please let me know how to handle this issue.
    Thanks in advance.
    Regards,
    Gajanan

    <b>Hi,
    smells like workflow task.
    DI Information
    Message type
    INVOIC
    IDOC type
    INVOIC01, INVOIC02
    X12 transaction set
    810
    Edifact message type
    INVOIC
    Workflow in case of error
    TS 0000 8056</b>
    Executable program
    IDOC_INPUT_INVOIC_FI
    Regards,
    Clemens

  • Problem with user exit EXIT_SAPLIEDI_001 for Inbound Idocs in replacing G/L

    Hello all,
    I am currently facing an issue where my IDOC where exit EXIT_SAPLIEDI_001 is not appearing to work properly.
    Basically I am using the FM that processes the inbound idoc (IDOC_INPUT_INVOIC_FI) to post an accounting document. We needed a solution where we need to substitute one of the G/L Accounts.
    The current process in our SAP system is that we are creating a billing document which automatically generates the output type (running: program rsnasted subroutine edi_processing) to create and process the inbound idoc. 
    So I discovered FM EXIT_SAPLIEDI_001 which exports company code and G/L Account back does this.
    In this exit, Since I needed to get data from the IDOC, I used the logic ASSIGN: ('(SAPLIEDI)IDOC_DATA[]') TO <fs_edidd> to get the DATA Records for further processing.
    During the development and testing phase in the Sandbox system this works.
    However when we moved this to production we encountered a situation where the G/L account was not being substituted so were assuming EXIT_SAPLIEDI_001 is not working properly. However when I reprocess this in production either by running the idoc with errors RBDMANI2 or BD87 the IDOC is properly posted and the G/L Account is substituted as well as if I try to repeat the output type of the billing document. So there are instances when in the actual business scenario it does not work except when I reprocess it.
    I was wondering if there are any ideas why this could have happened?
    Oh ... I  also noticed when we transported the objects of the exit. When I try to double click the subroutine I made inside the exit it said the object does not exist. I had to generate the function group of FM EXIT_SAPLIEDI_001 in SE80 in production for it to reflect. I was wondering if this could have caused the issue.
    Well I hope to hear from you.
    Regards
    Edited by: Rob Burbank on Dec 6, 2011 1:03 PM

    Hi,
    Check in t.code CMOD whether project is active or not (Activate the Project)
    BR,
    Vijay

Maybe you are looking for

  • ITunes Store account for two different countries

    Greetings to all, Until now my my Apple Id is used to purchase items on the Swiss iTune store. Presently I would like to have the following setup: One Apple Id to use with the Swiss iTune Store when I reside in Switzerland (this i have) with swiss cr

  • Outgoing mail off-line

    My mail has been working perfectly until this morning when my email would not send and I kept getting a message requesting my password. This message kept reappearing. My mail sat in outbox and would not send. On checking mail preferences I noticed it

  • BW SQL Source System using DBCON

    I have created the Source system as mentioned in help.sap.com, and when I try to select Tables, it tell me that their are no tables. But I wrote an ABAP program and tested the connection is working and I was able to pull data from one of the tables u

  • BPC Update from SP04 to SP07

    Hello, we are currently running BPC 7.0 MS on SP04. We tried to update the system to SP07 and it went fine, but we have doubts, that the now installed version is SP07. The Update Package shows the in the version.ini the number 116, which represents t

  • Modifying IO configurations post implementation

    I have an implemented design in Vivado 2015.2 and want to remove the pullups from two of my IO without re-running the whole design. However when I remove the pullup my modifying the IOBUF properties, the tool says that Synthesis and Implementaion are