How to activate Forward Error Handling in SRM

Hello Gurus,
I got an requirement to activate Forward Error Handling in SRM. I have searched on SDN but didn't find appropriate answer on it.
Even I found some link: PI/XI: Forward Error Handling (FEH) for asynchronous proxy calls with the use of Error and Conflict Handler (ECH)
It explains me some points like activating FEH from SRM in SPRO. I have activated the same, plz check the screen shot:
It also follows some development for the same.
Here my concern is, should I follow this document? Does it applicable to all to all the scenarios?
Step 8: it assign object id and type what does it mean...
Does any one can explain me in detail..... Please provide me any document to configure the FEH in SRM.
I am trying to implement FEH in my SRM system. So that when even XML fails due to error, I should be able to reprocess/restart it with some editing to the XML.
My receiver interface for XML is PurchaseRequestERPSourcingRequest_In
I think this is standard one and no need to make any custom code for it. SAP has all ready given solution for it with some Configuration.
I have made some configurations like:
The view FEHV_ACTIVE must have the status active.
In transaction /SAPPO/LOGSYS , the logical system must be defined for the software component SRM-EBP-ESA .
As stated in in the link :
http://esworkplace.sap.com/socoview%28bD1lbiZjPTAwMSZkPW1pbg==%29/render.asp?id=2BAABCB0D30111DC2B8D000F20FCB6A9&fragID=…
Also I have made some configuration according to the Note: 1973768 - No reprocess option is available in FEH for failed in XML in SRM
Resulted, the “Process” button get activated in the XML Post Processing screen.
But can I reprocess my XML with edited value from there..?
All the  configuration part of PI  is already done .
I wanted to know  about the  FEH  Part. what are the  steps   i am  missing  or where  i am  going  wrong ?
Please let me help.
Thanks
Regards
Karan

Dear Raz,
I have gone with above mentioned note, it explains about creating Custom Proxy and configuration with PI scenario. Even the link in my previous post, explains about the custom proxies and configuration..
I think I should must be descriptive about my issue.
I am trying to implement FEH in my SRM system. So that when even XML fails due to error, I should be able to reprocess/restart it with some editing to the XML.
My receiver interface for XML is PurchaseRequestERPSourcingRequest_In
I think this is standard one and no need to make any custom code for it. SAP has all ready given solution for it with some Configuration.
I have made some configurations like:
The view FEHV_ACTIVE must have the status active.
In transaction /SAPPO/LOGSYS , the logical system must be defined for the software component SRM-EBP-ESA .
As stated in in the link :
http://esworkplace.sap.com/socoview%28bD1lbiZjPTAwMSZkPW1pbg==%29/render.asp?id=2BAABCB0D30111DC2B8D000F20FCB6A9&fragID=…
Also I have made some configuration according to the Note: 1973768 - No reprocess option is available in FEH for failed in XML in SRM
Resulted, the “Process” button get activated in the XML Post Processing screen.
But can I reprocess my XML with edited value from there..?
Can any one tell me, what are the steps I am missing here. As this is my first time to implement FEH, I am confused.
Please let me help.
Regards,
Chandan

Similar Messages

  • How to Setup Forward Error Handling in PI Scenarios. Can you help me with the same with screen shots if possible?

    Dear all
    How to Setup Forward Error Handling in PI Scenarios. Can you help me with the same with screen shots if possible?
    Thanks
    Regards
    karan

    Hello
    These are the following errors
    1. Trace level="1" type="T">no interface action for sender or receiver found</Trace>
    2. <Trace level="1" type="System_Error">Application-Error exception return from pipeline processing!
    3.
    <Trace level="1" type="T">Application Error at Receiver... => ROLLBACK WORK</Trace>  
    <Trace level="1" type="T">System Error at Receiver... => ROLLBACK WORK</Trace>  
    <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />  
    <Trace level="1" type="System_Error">Application-Error exception return from pipeline processing!</
    Trace level="3" type="T">No persisting of message after plsrv call, because of config</Trace>Trace level="3" type="T">Error of the prevous version:</TraceTrace level="3" type="T">Error ID APPLICATION_ERROR</Trace>
    tThere are repeating errors also.
    TThanks
    Regards
    kkaran

  • Forward Error Handling

    Hi,
    Does anyone know where I can find more information on SAP Forward Error Handling? The only info I have found so far is here  [<clicky>|http://esoadocu.sap.com/socoview%28bD1lbiZjPTAwMSZkPW1pbg==%29/render.asp?sap-unique=125551&sap-params=cGFja2FnZWlkPURDQkQzMTVCNkQ3MjU1RjE5QUYyMDAxNDM4QzNCQzA4JmlkPTYyMTEwMEJBRkQ4NDQzQjBCNjkyN0FERjNGNkQ3MkZBJnBhY2thZ2VpZD1ERTA0Mjg0Njg3QkVCREYxOTUxNTAwMUE2NEQzRjQ2Mg%3d%3d]
    I have found the correct place in the IMG but there is not much additional documentation there either.
    Thanks
    Manish

    Goto SAP service marketplace and search for
    SAP Reference Implementation Guide -> Cross-Application Components -> Processes and Tools for Enterprise Applications -> Enterprise Services -> Error and Conflict Handling .
    Your link is not correct, I found one: http://esoadocu.sap.com/socoview(bD1lbiZjPTAwMSZkPW1pbg==)/render.asp?sap-unique=122005&sap-params=cGFja2FnZWlkPURDQkQzMTVCNkQ3MjU1RjE5QUYyMDAxNDM4QzNCQzA4JmlkPTYyMTEwMEJBRkQ4NDQzQjBCNjkyN0FERjNGNkQ3MkZBJnBhY2thZ2VpZD1ERTA0Mjg0Njg3QkVCREYxOTUxNTAwMUE2NEQzRjQ2Mg%3d%3d
    Reards,
    Gourav

  • Forward Error Handling (FEH) framework?

    Hi all
    Forward Error Handling (FEH) framework - can any one expalin this?
    Muthu

    Hi,
    Forward Error Handling (FEH) is a framework in SOA for performing error processing in
    asynchronous communication on the receiver side. Please check the troubleshooting document.
    https://service.sap.com/sap/support/notes/1270081
    Regards,
    Masa

  • Forward Error Handling - File interfaces?

    Hello Experts,
    Can we use Forward Error Handling (FEH) for implementing error handling in File Interfaces ?
    Like for simple Application Server file interfaces, if something goes wrong during the process of writing/reading a file on App Server, can we use FEH for showing the log?
    I know it is a concept used for PI...so we want to know if it can be used for file interfaces as well? Just want to keep similar approach for error handling and logging (for both PI and File Interfaces).
    Thanks.

    Edit 1 May 2015: Added inbound
    Just a slight correction.
    FEH is used in the ABAP backend systems and are only for asynchronous inbound proxy interfaces. It is not available for sync proxies, IDocs, BAPIs. Neither is it available for any error handling on the PI system itself.
    PI/XI: Forward Error Handling (FEH) for asynchronous proxy calls with the use of Error and Conflict Handler (ECH)
    Message was edited by: Eng Swee Yeoh

  • How can I add error handling facilities to this code?

    Hi everyone, i have this code that needs some error handling facilities (messages that warn user the data inputted is not valid that prvent crashing) added to it. I have no idea on how to do it and i accept any ideas. I'll post the code in two sections as it doesnt fit. The code works by recieveing inputs for student grades and calculating the total and the average. That works fine, but i need to include an error handling facility that doesnt allow the user to input letters, special characters or numbers outside the range 1-10. Can anyone help?

    Code Part 1:
    import java.text.DecimalFormat;
    import javax.swing.JOptionPane;
    import javax.swing.*;
    import java.util.*;
    //Defines the counter for the student count and uses a usage method to
    public class EdronProject {
      private              int           studentCount;
      private static final String        USAGE = "Usage: java EdronProject <student count>";
      private              List<Student> list;
    //Set up the counter fo the number of students and the list in which
    //each student's information is saved once processed
      public EdronProject(int count) {
        studentCount = count;
        list = new ArrayList<Student>();
    //Checks the number or arguments, and it executes the rest of the code
    //if there is 1 argument or more (the number of arguments = the number
    //of students being processed)
      public static void main( String args[] )  throws NumberFormatException {
       int count = 0;
       switch (args.length) {
         case 1: count = Integer.parseInt(args[0]); break;
         default: System.out.println(USAGE); System.exit(0);
      //Defines method for processing and printing students within the
      //EdronProject class 
        EdronProject edp = new EdronProject(count);
        edp.processStudents();
        edp.printStudents();
      class Student {
      //Define integer values for the 5 subject's grades, the gradeCounter (used
      //in the processing stage) and the student name string
          private int 
                    gradeCounter,
                    grade1,
                    grade2,
                    grade3,
                    grade4,
                    grade5;
         private double total;
         private String studentName;
    //Use setter getter methods for the student name to be retrieved
        public void setStudentName(String name) {
           studentName = name;
        public String getStudentName() {
          return( studentName );
    //Use setter getter methods for the grades inputted to be retrieved
    //by the processing stage
        public void setGrade(int gradeNo, int grade)  throws IllegalArgumentException {
          switch( gradeNo) {
            case 1 : grade1 = grade; break;
            case 2 : grade2 = grade; break;
            case 3 : grade3 = grade; break;
            case 4 : grade4 = grade; break;
            case 5 : grade5 = grade; break;
            default: throw new IllegalArgumentException("ERROR: Bad grade number passed!");
      //Increase grade counter for it to register the number of grades inputted
      //by user
          gradeCounter++;
        public int getGrade(int gradeNo)  throws IllegalArgumentException {
          int grade = 0;
          switch( gradeNo) {
            case 1 : grade = grade1; break;
            case 2 : grade = grade2; break;
            case 3 : grade = grade3; break;
            case 4 : grade = grade4; break;
            case 5 : grade = grade5; break;
            default: throw new IllegalArgumentException("ERROR: Bad grade number passed!");
    //Return grade values for them to be used by the processing stage   
          return( grade );
        }

  • How to issue an error message in SRM portal?

    Subject...
    I've tried using FM BBP_PD_MSG_ADD in BADI implementation BBP_DOC_CHANGE_BADI but it's not working. There's always an exception LOG_NOT_FOUND.
    Please advise.

    Hi,
      Any error generated from SRM will be visible in Portal view. No additional configurations or developments are required for that purpose.
    In order for messages to generate, you will ve to use BBP_DOC_CHECK_BADI.
    DOC Change BADI is meant for changing the SRM application documents based on customer's own criteria.
    Regards
    Virender Singh

  • How to implement general error handler in labview projects

    Thanks,

    Hello,
    You may also find these links useful:
    Custom Error Handling In LabVIEW
    http://zone.ni.com/devzone/conceptd.nsf/webmain/de​4f036f22c4b9f286256fee0010b6fd
    LabVIEW Introduction Course - Six Hours (has a section on error handling)
    http://zone.ni.com/devzone/learningcenter.nsf/03f7​c60f17aad210862567a90054a26c/55974411828f779086256​...
    Hope this helps!
    Charlie S.
    Visit ni.com/gettingstarted for step-by-step help in setting up your system

  • How to issue an error message in srm using BBP_DOC_CHANGE_BADI implem?

    Subject....
    This can be easily done in BBP_DOC_CHECK_BADI using et_message exporting table. There's no table like that in DOC_CHANGE_BADI. Please Advise.

    Hi
    First, let me one thing like "ET_MESSAGES" is not a database table it is an EXPORTING parameter of BADI (BBP_DOC_CHANGE_BADI).
    This exporting parameter is referred to one TABLE TYPE (BBP_TMESSAGES_BADI) and internally it refers to the structure (BBP_SMESSAGES_BADI).
    So, what you need to do is just capture all the error messages in to some internal table and loop the internal table and populate "ET_MESSAGES" internal table which is a exporting parameter.
    Hope it helps you.
    Thanks
    Siva

  • Forward Error Handler - Add component to table '

    Hello,
    I've been configuring SOA. Note '1270081 - Trouble shooting SOA Services' explains monitoring of SOA including FEH. It says that you need to maintain an entry for every system in table: '/n/SAPPO/LOGSYS'. In our case SRM <> R/3 we would need to configure 2 entries, one entry per system.
    The above table does not excist in any of both systems. However i did find the following tableview: /SAPPO/VLGSYS. Should we use and configure it here? What does this configuration do / why is it required?
    Kind regards,
    Tim

    Tim,
    Rather than table, did you try it as Transaction ..
    /n/SAPPO/LOGSYS
    It's works.. also try transaction /n/SAPPO/PPO2.
    Regards,
    Sandeep Parab

  • How to perform Error Handling in this Bdc Code

    Hi,
    I had created this BDC for the tcode MB1B and i want to know how to perform the ERROR HANDLING in it ..
    Plzz provide me guidelines for doing it . here's d code:-
    report ZBDC_MB1B
           no standard page heading line-size 255.
    include bdcrecx1.
    data: begin of record OCCURS 0,
          WERKS_001(004),     "Plant
          MATNR_002(018),     "ItemId
          ERFMG_003(013),     "Quantity in Unit of Entry
          ERFME_004(003),     "Unit of Entry
          LGORT_005(004),     "Storage Location
          CHARG_006(010),     "BatchId
          KDAUF_007(010),     "Sales Order Number
          KDPOS_008(006),     "Item Number in Sales Order
          end of record.
    PARAMETERS : P_FILNAM LIKE RLGRAP-FILENAME.
      initialization.
      CTUMODE = 'A'.
      CUPDATE = 'A'.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILNAM.
      CALL FUNCTION 'WS_FILENAME_GET'
       EXPORTING
         MASK                   = ',. '
         MODE                   = 'O'
         IMPORTING
         FILENAME                 = P_FILNAM
       EXCEPTIONS
         INV_WINSYS             = 1
         NO_BATCH               = 2
         SELECTION_CANCEL       = 3
         SELECTION_ERROR        = 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.
    start-of-selection.
    CALL FUNCTION 'WS_UPLOAD'
       EXPORTING
         FILENAME                      = P_FILNAM
         FILETYPE                      = 'DAT'
        TABLES
          DATA_TAB                     = RECORD
       EXCEPTIONS
         CONVERSION_ERROR              = 1
         FILE_OPEN_ERROR               = 2
         FILE_READ_ERROR               = 3
         INVALID_TYPE                  = 4
         NO_BATCH                      = 5
         UNKNOWN_ERROR                 = 6
         INVALID_TABLE_WIDTH           = 7
         GUI_REFUSE_FILETRANSFER       = 8
         CUSTOMER_ERROR                = 9
         NO_AUTHORITY                  = 10
         OTHERS                        = 11
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT RECORD.
      BEGIN OF SCREEN 1
    perform bdc_dynpro      using 'SAPMM07M' '0400'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RM07M-SOBKZ'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    *perform bdc_field       using 'MKPF-BLDAT'
                                 '22.12.2008'.
    *perform bdc_field       using 'MKPF-BUDAT'
                                 '22.12.2008'.
    perform bdc_field       using 'RM07M-BWARTWA'
                                  '411'.
    perform bdc_field       using 'RM07M-SOBKZ'
                                  'E'.
    perform bdc_field       using 'RM07M-WERKS'
                                  RECORD-WERKS_001.             "Plant
    perform bdc_field       using 'XFULL'
                                  'X'.
    perform bdc_field       using 'RM07M-WVERS2'
                                  'X'.
      BEGIN OF SCREEN 2
    perform bdc_dynpro      using 'SAPMM07M' '0421'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSEG-CHARG(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'MSEG-MATNR(01)'
                                  RECORD-MATNR_002.             "ITEMID
    perform bdc_field       using 'MSEG-ERFMG(01)'
                                  RECORD-ERFMG_003.             "QTY.
    perform bdc_field       using 'MSEG-ERFME(01)'
                                  RECORD-ERFME_004.             "UOM
    perform bdc_field       using 'MSEG-LGORT(01)'
                                  RECORD-LGORT_005.             "ST.LOC
    perform bdc_field       using 'MSEG-CHARG(01)'
                                  RECORD-CHARG_006.             "BATCHID
    perform bdc_field       using 'MSEGK-MAT_KDAUF'
                                  RECORD-KDAUF_007.             "S.O.
    perform bdc_field       using 'MSEGK-MAT_KDPOS'
                                  RECORD-KDPOS_008.             "S.O.LINE ITEM
    perform bdc_field       using 'DKACB-FMORE'
                                  'X'.
      BEGIN OF SCREEN 3
    perform bdc_dynpro      using 'SAPLKACB' '0002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTE'.
    perform bdc_field       using 'DKACB-FMORE'
                                  'X'.
    perform bdc_dynpro      using 'SAPLKACB' '0002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTE'.
    perform bdc_dynpro      using 'SAPMM07M' '0421'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSEG-ERFMG(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'DKACB-FMORE'
                                  'X'.
      BEGIN OF SCREEN 4
    perform bdc_dynpro      using   'SAPLKACB' '0002'.
    perform bdc_field       using      'BDC_OKCODE'
                                                '=ENTE'.
    perform bdc_transaction using 'MB1B'.
    ENDLOOP.

    hi,
    check this code in bold letters.
    INCLUDE BDCRECX1.
    TABLES : MARC.
    TYPES : BEGIN OF TY_UPLOAD,
            MATNR TYPE MARA-MATNR,
            WERKS TYPE MARC-WERKS,
            STEUC TYPE MARC-STEUC,
            END OF TY_UPLOAD.
    TYPES : BEGIN OF TY_MARC,
            MATNR TYPE MARA-MATNR,
            WERKS TYPE MARC-WERKS,
            END OF TY_MARC.
    TYPES : BEGIN OF TY_MTART,
            MATNR TYPE MARA-MATNR,
            MTART TYPE MARA-MTART,
            END OF TY_MTART.
    DATA : T_MARC TYPE STANDARD TABLE OF TY_MARC,
         : T_UPLOAD TYPE STANDARD TABLE OF TY_UPLOAD,
         : T_BASIC TYPE STANDARD TABLE OF TY_UPLOAD,
         : T_SALES TYPE STANDARD TABLE OF TY_UPLOAD,
         : T_ERROR TYPE STANDARD TABLE OF TY_UPLOAD.
    DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
           IT_BDCDATA_VIEW LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
           IT_DATA(3200) OCCURS 0 WITH HEADER LINE,
           IT_FIELD(3200) OCCURS 0 WITH HEADER LINE,
           IT_BDCMSG TYPE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA GI_MSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA : CHAR1(500),
          CHAR2(500),
          CHAR3 TYPE STRING,
          V_SELECTION TYPE STRING.  " For View Selection
    DATA : W_MARC TYPE TY_MARC,
           WA_UPLOAD TYPE TY_UPLOAD,
           WA_BASIC TYPE TY_UPLOAD,
           WA_SALES TYPE TY_UPLOAD,
           WA_ERROR TYPE TY_UPLOAD,
           WA_MTART TYPE TY_MTART.
    DATA : VAR TYPE N,
           VAR1 TYPE STRING.
    SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.   "SELECTION SCREEN
    PARAMETERS: P_FNAM LIKE RLGRAP-FILENAME.
    PARAMETERS: P_BAS LIKE RLGRAP-FILENAME.
    PARAMETERS: P_SAL LIKE RLGRAP-FILENAME.
    PARAMETERS: P_ERR LIKE RLGRAP-FILENAME.
    SELECTION-SCREEN : END OF BLOCK B1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAM.
      PERFORM SEARCH USING P_FNAM.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BAS.
      PERFORM SEARCH USING P_BAS.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_SAL.
      PERFORM SEARCH USING P_SAL.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_ERR.
      PERFORM SEARCH USING P_ERR.
    *&      Form  SEARCH
          text
         -->PFNAME     text
    FORM SEARCH USING PFNAME.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          STATIC    = 'X'
        CHANGING
          FILE_NAME = PFNAME.
    ENDFORM.                    "SEARCH
    START-OF-SELECTION.
      PERFORM UPLOAD_PROCESS USING P_FNAM.
      PERFORM OPEN_GROUP.
      PERFORM PROCESS.
      PERFORM CLOSE_GROUP.
      IF NOT T_BASIC[] IS INITIAL.
        PERFORM DOWNLOAD TABLES T_BASIC[] USING P_BAS .
      ENDIF.
      IF NOT T_SALES[] IS INITIAL.
        PERFORM DOWNLOAD TABLES T_SALES[] USING P_SAL .
      ENDIF.
      IF NOT T_ERROR[] IS INITIAL.
        PERFORM DOWNLOAD TABLES T_ERROR[] USING P_ERR.
      ENDIF.
    *&      Form  PROCESS
          text
    FORM PROCESS.
      LOOP AT T_UPLOAD INTO WA_UPLOAD.
        PERFORM CONV_ROUTINE  USING WA_UPLOAD-MATNR
                            CHANGING WA_UPLOAD-MATNR.
        SELECT COUNT(*) FROM MARA WHERE MATNR = WA_UPLOAD-MATNR.
        IF SY-SUBRC NE 0.
          MOVE-CORRESPONDING  WA_UPLOAD TO WA_BASIC.
          APPEND WA_BASIC TO T_BASIC.
          CLEAR WA_BASIC.
          CONTINUE.
        ENDIF.
        SELECT COUNT(*) FROM MARC WHERE MATNR = WA_UPLOAD-MATNR
                                        AND WERKS = WA_UPLOAD-WERKS
                                        AND PSTAT LIKE '%V%'.
        IF SY-SUBRC NE 0.
          MOVE-CORRESPONDING  WA_UPLOAD TO WA_SALES.
          APPEND WA_SALES TO T_SALES.
          CLEAR WA_SALES.
          CONTINUE.
        ENDIF.
        CLEAR : WA_MTART.
        SELECT SINGLE MATNR MTART FROM MARA INTO WA_MTART WHERE MATNR = WA_UPLOAD-MATNR.
        PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0060'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RMMG1-MATNR'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=AUSW'.
        PERFORM BDC_FIELD       USING 'RMMG1-MATNR'
                                      WA_UPLOAD-MATNR.
        CALL FUNCTION 'MATERIAL_BTCI_SELECTION_NEW'     " Function module
        EXPORTING
          MATERIAL                  = WA_UPLOAD-MATNR  " Material number
          MATERIALART               = WA_MTART-MTART          " Material Type
          SELECTION                 = 'V'              "
          TCODE                     = 'MM02'           " Tcode where view's are called.
        TABLES
          BTCI_D0070                = IT_BDCDATA_VIEW
        EXCEPTIONS
          MATERIAL_NOT_FOUND        = 1
          MATERIAL_NUMBER_MISSING   = 2
          MATERIAL_TYPE_MISSING     = 3
          MATERIAL_TYPE_NOT_FOUND   = 4
          NO_ACTIVE_DYNPRO_SELECTED = 5
          NO_AUTHORITY              = 6
          OTHERS                    = 7.
        READ TABLE IT_BDCDATA_VIEW WITH KEY FVAL  = 'X'.
        IF SY-SUBRC = 0.
          V_SELECTION = IT_BDCDATA_VIEW-FNAM.
        ELSE.
          CONTINUE.
        ENDIF.
        VAR = IT_BDCDATA_VIEW-FNAM+17(2).
        VAR = VAR + 3.
        CONCATENATE 'MSICHTAUSW-KZSEL(' '0' VAR ')' INTO VAR1.
        PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0070'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'MSICHTAUSW-DYTXT(06)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM BDC_FIELD       USING VAR1
                                       'X'.
        CLEAR VAR.
        CLEAR VAR1.
       PERFORM BDC_FIELD       USING 'MSICHTAUSW-KZSEL(06)'
                                     'X'.
        PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0080'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RMMG1-VKORG'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM BDC_FIELD       USING 'RMMG1-WERKS'
                                      WA_UPLOAD-WERKS.
        PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4004'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=BU'.
       PERFORM BDC_FIELD       USING 'MAKT-MAKTX'
                                     'MTI_ESE_HALB_01'.
        PERFORM BDC_FIELD       USING 'MARC-STEUC'
                                      WA_UPLOAD-STEUC.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'MARC-HERKR'.
        PERFORM BDC_FIELD       USING 'MARC-HERKL'
                                      'IN'.
        PERFORM BDC_FIELD       USING 'MARC-HERKR'
                                      'MAH'.
        PERFORM BDC_TRANSACTION USING 'MM02'.
    move the error record into seperate internal table nad down load it ****
        IF MESSTAB-MSGTYP = 'E'.
          MOVE-CORRESPONDING WA_UPLOAD TO WA_ERROR.
          APPEND WA_ERROR TO T_ERROR.
          CLEAR WA_ERROR.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    "PROCESS
    *&      Form  UPLOAD_PROCESS
          text
         -->PFNAME     text
    FORM UPLOAD_PROCESS USING PFNAME.
      DATA : PFNAME1 TYPE STRING.
      PFNAME1 = PFNAME.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME            = PFNAME1
          FILETYPE            = 'ASC'
          HAS_FIELD_SEPARATOR = 'X'
        TABLES
          DATA_TAB            = T_UPLOAD[].
      IF SY-SUBRC <> 0.
      ENDIF.
    ENDFORM.                    "UPLOAD_PROCESS
    *&      Form  CONV_ROUTINE
          text
         -->P_INPUT    text
         -->P_OUTPUT   text
    FORM CONV_ROUTINE   USING    P_INPUT
                     CHANGING P_OUTPUT.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = P_INPUT
        IMPORTING
          OUTPUT = P_OUTPUT.
    ENDFORM.                    "CONV_ROUTINE
    *&      Form  DOWNLOAD
          text
         -->GI_FINAL   text
         -->PFNAME     text
    FORM DOWNLOAD TABLES
                  GI_FINAL
                         USING  PFNAME .
      DATA : FNAME TYPE STRING.
      FNAME = PFNAME.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                        = FNAME
          FILETYPE                        = 'DAT'
         WRITE_FIELD_SEPARATOR           = 'x'
            HEADER                          = '00'
          IMPORTING
            FILELENGTH                      =
        TABLES
          DATA_TAB                        =  GI_FINAL[]
          FIELDNAMES                      = GI_FIELDNAMES[]
      IF SY-SUBRC = 0.
        MESSAGE 'FILE DOWNLOADED SUCCESSFULLY' TYPE 'I'.
      ENDIF.
    ENDFORM.                    " DOWNLOAD
    Regards
    Siva Prasad

  • General Error Handling - use of FEH (PPO/ECH)

    We are investigating the usage of Forward Error Handling, known with SAP as PPO (Post Processing) and ECH (Error Capture Handler) to be able to re-process errors (automatically or manually) from incoming messages.
    I am interested in talking with anyone who has implemented this. General questions are:
    - how have you found it to work in real life?
    - configuration/set-up straight-forward?
    - what scenarios have used it in?
    - incorporated into your custom services?
    But am interested in any comments.
    I am posting this within the PI forum as it ties into the fact we async scenarios inbound to SAP, typically from our PI system, and when those scenarios encounter an error we are looking for a way to have a business/end user - friendly interface for reprocessing the error. Implementing a proxy scenario, and thus having the errors show within sxmb_moni/sxi_monitor, is probably not going to work for us - too technical.  I am also aware of an add-on, AIF I believe, but our company is not interested in installing that.
    There are 4 blogs out there that I am aware of - 2 from Tobias and 2 from Michal. Very informative.  I am finding some config not as ours though.  Am really interested in anyone has really implemented and used this in a prod environment.
    Regards,
    Keith

    I think I am exactly at the same position as you in figuring out the usage of FEH in an environment. I just completed a small document (for internal purpose) that I prepared gathering all the information from those blogs, SCN and TechEd. Here are my 2 cents:
    >>- how have you found it to work in real life?
    We haven't implemented it yet. But we believe it will be quite useful in handling business specific errors. We are trying to find out if it can be merged with the existing BPEM infrastructure to generate BPEM cases.
    >>- configuration/set-up straight-forward?
    Yes, the blogs should be quite useful to provide this information.
    >>- what scenarios have used it in?
    Most importantly it will be used for standard service implementation where we consume enterprise services from ES workplace. These services have FEH capability built in (they have FEH method implemented within). The scenarios are of course inbound abap proxy.
    >>- incorporated into your custom services?
    We are still in design phase. But if you ask me about it, i would say yes you can and I think you should use it for custom ones as well.
    Kind regards,
    Prateek Raj Srivastava

  • IDOC to SOAP asynchronous scenario Error handling

    Need an expert!!!!!!!!! advise on  error handling for IDOC--PI--
    SOAP scenario.This is a asynchronous scenario where PI is calling a Legacy system using SOAP adapter.My question is how i can do error handling in this scenario.If i get an alert in pi with payload variable that would be fine, do i need to use BPM and if that is tthe case what will be steps.
    Appreciate your help.
    Manish

    Hello Manish,
    My question is how i can do error handling in this scenario.
    Use the standard alert framework. Search on SDN / SAP Help for details.
    do i need to use BPM and if that is tthe case what will be steps.
    BPM is not required to raise alerts, as this is an async call.
    Regards,
    Neetesh

  • How can I handel errors in .ksh file

    Hi All
    I am writing a .ksh file which will create FTP a file to the ftp location ..
    My file looks like this :-
    cd ${RUNTIME}
    NOW=$(date +"%y%m%d%H%M%S")
    ftp -i -n -v ${TEST_TP_SERVER} <<END
    user $TEST_TP_USER_ID $TEST_TP_USER_PWD
    lcd ${OUTDIR}
    put "TEST.txt" "$NOW.ABC"
    quit
    END
    My question is how can I handel errors here in this file . If something happens after cd ${RUNTIME} line then I can write like this :
    if [ "$?" -ne "0" ]; then echo "Can not connect , wrong user name / password " exit 1 fi 
    But after ftp -i -n -v ${TEST_TP_SERVER} <<END line I cant write the same . So can anyone please tell me how can I write error handling part after FTP command ?

    Moreover, I need to send that page as a whole by email, so even if the white spaces between parts of picture
    could be removed during printing, it wouldn't be a solution =(
    You can email the new PDF document.

  • Error handling for a save button

    hi. how do i get error handling say in a button, and then to give an error to the user, without crashing the whole application. can any one point me to any articles, tried searching , and not finding wxactly what i am looking for. thanks.
    http://startrekcafe.stevesdomain.net http://groups.yahoo.com/groups/JawsOz

    hi. maybe i did not make my self clear. okay, here's how this button works, you have a open dialog button, and a open dialog box, you click the file, and it loads in the data grid. now you click on the save button, and a message says file was saved, need
    try / catch code, to catch this, if the file was not saved, or other errors, then a error friendly message, any code for this. read the article, but need a specific error handler for the save button, like i had for the open dialog file dialog box. any suggestions,
    or links, to look at sample code. thanks.
    http://startrekcafe.stevesdomain.net http://groups.yahoo.com/groups/JawsOz

Maybe you are looking for

  • [solved] Touchpad scrolling and tapping stops working after Xorg 1.9

    Hi all, My laptop is an Acer Extensa 5630EZ and it has been running for over a year with Arch without problems. However, since the xorg 1.9 upgrade the touchpad edge scrolling just randomly stops working. Everything else continues working fine. I hav

  • PAPI Web Service (PAPI-WS) Example for Oracle BPM Enterprise Standalone

    Here is the location of a step-by-step explanation on how to use PAPI Web Service (PAPI-WS) to create a work item instance and then run the instance inside an activity in a process running on Oracle BPM Enterprise Standalone. http://www.4shared.com/f

  • Spark TextInput does not bring up soft keyboard in iOS?

    I created an app with TextInputs that was working fine, bringing up the soft keyboard in both Android and iOS devices.  After being away from it a couple weeks, when I made some unrelated changes, it no longer brings up the keyboard at all on iOS, an

  • Account won't unlock - need to wait 24 hours?

    RangerGeof wrote: If she keeps getting locked out, her computer/phone are constantly hitting your DC with the old/bad password. Possibly a service. Either way without stopping that from constantly locking her account there isn't much you can do agree

  • Why does my email say my mom's name when i send one?

    So i used my iphone, the caller id always shows up as her, but all my apple stuff is in my name. why does it show up with her name when i send email from my icloud account?