Error in Extend IDOC in WE30 Transaction

Hi Gurus.
When I am creating an extension in WE30 transaction, the message is displayed:
"Action is Not Possible for generated idoctypes"
Debugging the transaction, identify the DataBase table EDBAS, What has the field "GENERATED" marked with "X" for Basic Type used.
How i Create the Extension for this Idoc  ?
Basic Type: SALESORDER_CREATEFROMDAT202
Please Help-me.
Tks.
André Almeida

Hi,
You can not extend the Generated IDOC types but you can use the E1BPEXT E1BPEXTC segment that is given by SAP for customer enhancement.
If you really want to extend the IDOC then
1> Extension can not be done by we30 but you have to create the subtype of the corresponding business object.
2> go to BDBG transaction code and regenerate this again
3 > here you have to give new message type then again you have to proceed accordingly.
have a look on the link.
http://help.sap.com/saphelp_47x200/helpdata/en/4c/4c0e9c725311d396a80004ac96334b/frameset.htm
regards
Prince

Similar Messages

  • Error in extended idoc DEBMAS

    Hi Gurus,
    I have extended DEBMAS message type to ZDEB.....
    in which there is one segment ZKBALID and it is released to version 700.
    but when i populate that segment in my application program, the idoc is not being generated with status message 02.
    Which says
    'Segment ZKBALID is unknown in Release 46C /'
    Can anyone help me in finding out the exact reason behind the  error  and how i can rectify the same...
    Thanks in advance.....

    Hello Chandra,
    Check if ur Z Segment is released?
    If this helps, plz reward.
    Rgds,
    Raghu.

  • How to write the logic for extending Idocs...

    Hi,
          Can anybody pls explain how to write the logic for extending IDOCs with an example...
          Good suggestions can be appreciated..
    Regards,
    Ram

    Hi Ram,
    Generally the IDoc user exit is called at the following places:
      1) When the control record is read.
      2) After each and every segment in the data record
      3) At the end of the data segment processing.
    The IDoc user exit interface generally imports IDOC_DATA (data record internal table) table. Now the data records in the internal table should appear in the same order as maintained while defining IDoc structure (WE30 transaction). For SAP standard segment SAP code will take care of this. For extended segment you will have to take care of this aspect by appending the Z-segment in the IDOC_DATA table.
    You can do this by:
             looping at IDOC_DATA table:
                 - Do a case-endcase fo IDOC_DATA-SEGNAM (This stores the segment 
                   structure as per the hierarchy).
                 - Within the case for "Z-segment" you can write the logic for appending
                   the Z-segment to IDOC_DATA-SDATA.
    Hope this gives some clue.
    Regards,
    Gajendra.

  • Extended IDOC for transaction VL02N : Error 51

    Dear,
    I am Working on Extended IDOC for transaction VL02N (Outbound Delivery) and stuck in Inbound with Error 51: Specifications for units and quantities contain errors VBPOK-MEINS TO LIPS-MEINS MT.
    Message no. VL282
    How to resolve it?
    At Outbound Programmed at EXIT_SAPLV56K_002 and at Receiver did WE57, BD51, WE42, WE20 and using listed below programs.
    Function Module - IDOC_INPUT_DELVRY      - SAP Standard
    Function Type - F (Function Module)
    Basic Type - DELVRY03      - SAP Standard
    IDOC (Enhancement) - ZDELV - Custom
    Message Type - ZDELVRY - Custom
    Process Code      - DELV      - SAP Standard
    Thanks-
    Varun

    Hi varun,
    in SAP you have a few keys that not only have a description depending on language but also the key itself varies from language to language. You can see that if you double-click on a unit field like i.e. MARA-MEINS: On domain level it will show a conversion exit. If you try the conversion exit function modules, you will find out that i.e. PC english pieces will be mapped to internal ST wich comes from the german Stück which is the translation of pieces.
    Be aware that this special logic may apply for document types, partner types and a few more (?).
    So, in IDoc processing this may cause harm. I did not analyze DELVRY03 structure and processing, I don't know any of your data, I haven't seen any line of your code, I don't know what you actually implemented.
    So now it is your turn to check what you pass in the unit fields and how this is handled.
    Regards
    Clemens

  • Error while Filling custom extended idoc

    i have extended segment e1edpa1 with ZLOC segment in INVOIC01 idoc .now i'm filling this extended idoc from exit EXIT_SAPLIEDI_101 but it is giving me error like "EDI: Syntax error in IDoc (mandatory segment missing)" can anyone tell me what could be the reason?below is my code.
    WHEN 'E1EDPA1'.
          MOVE idoc_data-sdata TO e1edpa1.
          IF e1edpa1-parvw = 'WE'.
            SELECT SINGLE * FROM kna1 INTO w_kna1 WHERE kunnr = e1edpa1-partn.
            IF sy-subrc = 0.
              MOVE: w_kna1-locco TO zloc-locco,
                    w_kna1-bahne TO zloc-bahne.
              MOVE 'ZLOC' TO idoc_data-segnam.    " administrative section
              MOVE zloc TO idoc_data-sdata.       " data section
              APPEND idoc_data.
    thx

    Why do you need to add a segment via code in an inbound IDOC? we dont populate segments in inbound processing, rather you shoul dbe getting value from the source system in the IDOC, and reading the custom segment to process the values.
    if source is not sending the values , and you need those then you are supposed to read and process the values to move those to corresponding structure for SAP program to process the data. Adding a segment in inbound is not going to get you anything.

  • Extend Idoc  INVOIC02 - E1EDKA1 - Syntax error

    Hi All,
    I have extended Basic idoc “INVOIC02” and using exit “EXIT_SAPLVEDF_002” to extend custom segment. I am trying to add a custom segment under “E1EDKA1”. In program I am inserting ‘Z1’ segment after parent segment “E1EDKA1”. I am passing Parent segment reference (INT_EDIDD-PSGNUM) and hierarchy level of custom (INT_EDIDD-HLEVEL) segment. Problem is custom segment still placed under root segment after “E1EDKA1” segment, which is incorrect.  Idoc error with status ‘26’ – Syntax error. Can any one tell me what I am doing wrong or how do I manage to get custom segment under parent segment “E1EDKA1”, so that I don’t get this error. Below code for your reference. Thanks in advance.
    Regards,
    Tim
    Program -
    "ZXEDFU02" -
    describe table INT_EDIDD lines gv_indes.
    read table INT_EDIDD index gv_indes.
    if sy-subrc eq 0.
      if INT_EDIDD-segnam eq co_e1edka1 and
         INT_EDIDD-sdata+0(3) eq 'ZM'.
    Now INSERT segment Idoc value and custom extend field
        if not gv_email is initial.
                INT_EDIDD-PSGNUM = gv_indes.
                INT_EDIDD-HLEVEL = '03'.
          move: co_z1edka1        to INT_EDIDD-SEGNAM,
                'email address'   to INT_EDIDD-SDATA.
          append INT_EDIDD.
        endif.
      endif.
    endif.

    Your logic looks ok.  I would remove the code to populate the parent segment number and hierarchy level.  SAP will determine those on its own.
    As for the result you are seeing, if there is a syntax error on an IDoc, the entire hierarchy will be lost so the fact that the custom segment is showing up at the same level as its parent doesn't mean that is actually causing the syntax error.
    Did you add your extension in the partner profile?
    Program -
    "ZXEDFU02" -
    describe table INT_EDIDD lines gv_indes.
    read table INT_EDIDD index gv_indes.
    if sy-subrc eq 0.
    if INT_EDIDD-segnam eq co_e1edka1 and
    INT_EDIDD-sdata+0(3) eq 'ZM'.
    Now INSERT segment Idoc value and custom extend field
    if not gv_email is initial.
    INT_EDIDD-PSGNUM = gv_indes.
    INT_EDIDD-HLEVEL = '03'.
    move: co_z1edka1 to INT_EDIDD-SEGNAM,
    'email address' to INT_EDIDD-SDATA.
    append INT_EDIDD.
    endif.
    endif.
    endif.

  • Problem creating extended IDOC

    Hi Experts,
    I am currently working on CRM 5.0. I need to create segment and attach it to the standard basic IDOC type CRMXIF_PARTNER_SAVE01. I am able to create segment in WE31 but i am unable to add that to the basic standard IDOC type.
    It is displaying message "Action is not possible for generated idoc types".
    Is there any other way to add this segment to the standard IDOC.
    It will be great help if u can send me some documents on this...
    Thanks,
    Samm

    Hi,
    Create Extended IDOCe using transaction WE30.
    -If u want to extend  idoc type which already exists then use the radio button extension(where we can add few new fields
    -After this click on create button as described above. It takes you to a popup screen where you fill the description and also select the radio button accordingly and say ok
    -we go to next screen select idoc type and click on create new It gives a pop up window
    -Once you are done with the addition save the IDOC type and release the idoc type
    <b>Goto-> Edit -> Set release.</b>
    This completes the creation of Ext IDOC type.
    - Then assign this extension to the IDoc type in WE82.
    <b>Reward with points if helpful.</b>
    Regards,
    Vijay

  • Need to extend idoc MBGMCR03

    Hi all,
    I want to extend idoc MBGMCR03 to pass serial no. data since the client serial no. length is 40 chars whereas SAP supports only 18 chars. When I try to extend the idoc, I get error message 'Action is not possible for generated idoc types'.
    This idoc being a ALE-BAPI interface cannot be extended.
    Can anyone tell me what's the best way of passing the serial no. data through the idoc? I have thought of using segment E1BPPAREX as nothing is being passed in it. We will be having a custom process code function module in which the values will be stored in an internal table and then the fields will be cleared so that the idoc can be posted.
    Thanks,
    Shoma

    Hi Gordon,
    Cann't i extend the MBGMCR03 Idoc type .I need to add 2 fields MENGE and ELIKZ.
    Do we need to have primary key field in WE31 along with MENGE and ELIKZ like Item no EBELP.
    I created a structure with above 4 fields along with EBELN.
    I am not able to create extension in WE30.
    it is saying that " Action is not possible for generated idoc types".
    Please let me know the User exit or Customer Exit  to use to populate the data.
    Please help
    Thanks & regards
    Vishnu
    Edited by: vishnukvv on Mar 4, 2011 11:57 AM
    Edited by: vishnukvv on Mar 4, 2011 12:08 PM
    Edited by: vishnukvv on Mar 4, 2011 12:10 PM
    Edited by: vishnukvv on Mar 4, 2011 12:27 PM
    Edited by: vishnukvv on Mar 4, 2011 12:28 PM

  • Process code for extended idoc

    Hi,
    If we are creating an extended idoc, do we have to assign a new process code to it ?
    Or will the process code and the associated function module for the basic type work as well for the extended idoc ?

    Process code will come in to picture when you deal with IDOCS .. you need to assign a code which internally will have a Function module or a Include, that will have entire code to run your bussiness for an IDOC or EDI or ALE.
    Process Code is a different name for specific purposes like function module. IDocs are written in this process.
    Outbound Process Code - if you are using outbound processing under Message Control, the IDoc is generated in the IDoc Interface. The process code names the relevant function module
    Inbound Process Code - names the function module or workflow which reads the IDoc data and transfers the data to the application document.
    http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b7d6243d711d1893e0000e8323c4f/content.htm
    Enter transaction WE30 (ALE->Extension-> IDOC types->Maintain Idoc type)
    Type in your name of the extended IDOC type (usually starting with 'Z') and click on the Basic IDoc type, click the create icon.
    Click on Create new and enter a description and press enter.
    Click on ZIDOCTYPE01 and then on the Create icon.
    Enter ZIDOCTYPE as the segment type, click on Segment Editor.
    Enter a description for your segment type and create.
    Enter a description for your segment, enter each field required in your IDoc and press enter to validate.
    Save and generate, press back
    To release the segment choose Goto, Release from the menu.
    Check the box on the line of your segment.
    Save, back and enter.
    Your Idoc type structure should be displayed with your new segment.
    Save and back.
    To release the Idoc type choose Extras, Release type from the menu and Yes.
    Reward points if useful.

  • Extending IDOC type

    Hi,
    Iam using the business object BUS20001 (CRMXIF_ORDER_SAVE_M) to create service order in CRM 3.1 system using LSMW. We have an addfiled in the order hence extended the IDOC type (ZCRMXIF_ORDER_SAVE_M02B), creating a new segment and attaching to the IDOC type. When i look into this extended IDOC type in the transaction WE30, all the segments has mapped to a field in the structure  CRMXIF_BUS_TRANS. But the newly created segment has no mapping. This unmapped field is not getting updated in the order created.
    Do i have to extended the structure CRMXIF_BUS_TRANS when i extend the IDOC type.Please advise if i miss any steps in extending the IDOC type.
    Regards
    Dhanapal S

    Hi Dhanapal,
    When there is a change in IDoc structure, you need to re-import in Repository.
    Also, in IDX1 transaction delete the existing meta data for the IDoc and import the meta data once again.
    Regards,
    Uma

  • Error in OutBound IDOC

    Hi ,
    Iam using PAYEXT message type and using a BASIC IDOC Type PEXR2001 , I have extended the PEXR2001 say for example ZPEXR2001 and added a Zsegment in EDDIKA1 ( Partner Header Data) and added two fields LFA1-STENR,
    LFA1-KONZS for configuring two new payment methods .
    My Functional Consultant also configured the Program RFFOEDI1 in transaction FBZP for print program which generates  IDOCs and we checked the check box for generate IDOCs.
    Im using EXIT_SAPLIEDP_902 and writing my code for inserting this new segment Zsegment1 and the two fields into EDDIC table in SEGNAME and SDATA.
    I ran F110 and the IDOC is created. But I get a Error Message 26, Which states 1. Mandatory segment Missing
    2. Segment Zsegment not identified.
    When Analysing the first Status Message " Madatory Segment Missing", i found that a cost field is not populated. So that can be fixed.
    I have released the Zsegment1 and released the Extended IDOC Type also.
    My Question is , Is it a must that we insert the Segments inorder, If so, whats the Order to be followed ?
    How can I make sure that iam inserting my new 'ZSEGMENT1' in the correct place in the USER Exit.
    I read some info on status 26 and found that there are 3 possible ways, 1.checking for OSS notes
    2. Check customer program 3. check partner function.
    I checked all the three. But, i also need to check the User Exit Code.  Where am i going wrong??
    Please guide me.
    Iam using 4.7E Version.
    Thanks,
    Anita

    Anitha,
    I guess error 'Segment Zsegment not identified' occurred as  you haven't linked the idoc extension to basic type and message type . You can do that in WE82.
    Idoc segment sequence matters and if you haven't added the custom segment in proper position, idoc will fail due to syntax error.
    In the customer exit implementation you can add the custom segment under its parent segment . For this fill the custom segment properly and pass the segment to idoc data record and then append to idoc data internal table.

  • Extend idoc type WPUTAB01

    I have to extend a idoc type 'WPUTAB01' so i can include some fields that dont exist in the idoc.
    How i can do this?
    tks
    regards
    Luis

    Hello Luis,
    1. Goto Transaction WE31. Create new segment with additional custom fields.
    2. Goto transaction WE30. Put new Z extended idoc name and select Extension Radio Button.
    3. On next screen select second radio button (Create as Copy) and put 'WPUTAB01' infront of Linked with basic type text box.
    4. On next screen Click on "Create Sgement" and insert segment which you have created with custom fields.
    5. Goto Edit-> Set Release..
    thats it.
    Cheers,
    Nilesh

  • Extend idoc

    for extended idoc i added the extended segment to basic type and doen
    the code as per that but i would like to confirm one thing that for
    every extended idoc for process code we need to modify the existing FM
    like MASTERIDOC_CREATE_DEBMAS ,
      for this FM we need to finc the enhansment and then modify the code
    as per that , so is the same for all extended idoc we need to find
    related FM for that and find enhancement and modify .

    Enter transaction WE30 (ALE->Extension-> IDOC types->Maintain Idoc type)
    - Type in your name of the extended IDOC type (usually starting with 'Z') and click on the Basic IDoc type, click the create icon.
    - Click on Create new and enter a description and press enter.
    - Click on ZIDOCTYPE01 and then on the Create icon.
    - Enter ZIDOCTYPE as the segment type, click on Segment Editor.
    - Enter a description for your segment type and create.
    - Enter a description for your segment, enter each field required in your IDoc and press enter to validate.
    - Save and generate, press back
    - To release the segment choose Goto, Release from the menu.
    - Check the box on the line of your segment.
    - Save, back and enter.
    - Your Idoc type structure should be displayed with your new segment.
    - Save and back.
    - To release the Idoc type choose Extras, Release type from the menu and Yes.
    ALE FUNCTION MODULE ENHANCEMENTS
    Having extended the IDOC type to contain additional fields for an inbound or outbound application, you now want to enhance ALE function modules for populating the additional segment on the outbound or applying the additional segment data on the inbound application.
    The core working code for ALE processes for a given application area is always encapsulated in ABAP/4 function modules. These function modules are associated with such control information as message types and process codes. So the ALE process checks this control information and derives the name of the function module to invoke for that particular IDOC processing from certain database tables. These function modules contain objects known as customer functions, which can be considered SAP Enhanced user exits. A function module is called at a particular point during the processing of the main program or function module, and it can be used to influence data processing at that point by adding code to the customer function. The customer function behaves like a normal function module and has import and export parameters, tables (internal tables) statement, and exception processing. Unlike a conventional user exit, customer functions give you the ability to modify only data available to you by the function moduleâs parameters and internal tables. While most ALE/EDI function modules are supported by customer functions, there are ALE/EDI processes that still use conventional user exits. There are a few ways to determine which function module to enhance for a given message type/process code:
    • For master data distribution, from SALE go to Extensions -> Master data distribution -> Setup additional data for message types. Search for message type DEBMAS in this example. You see an entry for DEBMAS associated with function module MASTERIDOC_CREATE_SMD_DEBMAS. This data is stored on table TBDME. The function module names for all master data message types follow this pattern: MASTERIDOC_CREATE_SMD_messagetype. This function module calls another function module of name MASTERIDOC_CREATE_DEBMAS or MASTERIDOC_CREATE_messagetype. Search for the words customer function, and you find several hits that can be used to add code to the function module.
    • From WEDI got to Control -> Inbound process codes -> Inbound with ALE service -> Processing by function module (transaction WE42), or from WEDI go to Control -> Outbound process codes -> Outbound with ALE service -> With function module (transaction WE41). There will be function modules associated with the process codes. For inbound, the function modules usually follow this pattern: IDOC_INPUT_messagetype: for example, IDOC_INPUT_CHRMAS for inbound characteristics master.
    • Use transaction WE57 or from WEDI go to Development -> Message/Application Object. The entries list the function module, Business Object, message type, and IDOC type that are used for inbound ALE/EDI interfaces.
    Customer functions are not specific only to ALE and EDI but also to all programs/modules in SAP R/3. Customer function is a SAP enhancement component; the other two types are menu and screen enhancements.
    All customer function exits are maintained in SAP enhancements and are found by using transaction SMOD. After executing transaction SMOD, pull down (F4) on the enhancement name field, and execute again. This provides you with a list of all SAP enhancements available. SAP enhancements are grouped by development class pertaining to an application area. Choose Application development R/3 SD master data distribution for development class VSV to lead to a screen that lists VSV00001 as an enhancement (see Figure 5). Press Component +/- to display its function exit components. There are four possible components listed, all of which are function exits (and are function modules) that are called from the ALE function modules in the form Call Customer Function Î001â. This is a special occurrence of the ABAP statement Call. Go to item Exit_SAPLVV01_ 001, which you need to enhance for the Customer Master outbound example of an IDOC extension. In the ALE-function module MASTERIDOC_CREATE_DEBMAS, the statement CALL Customer Function 001 is translated in the background to call component EXIT_SAPLVV01_001. Although this function exit can be edited using transaction SE37, you will use a simpler approach.
    When you use SAP enhancements and their components, you manage them with an SAP object known as a project, which is like an envelope containing the selected enhancements and their components. A project can be used to control the execution of components and to transport them to other clients and instances in SAP. Basically, the process involves creating a project, including enhancements and components that are to be enhanced, editing the components, and then activating the project. The following process creates a project for our example Customer Master IDOC extension:
    • Execute transaction CMOD.
    • Enter name of project, say CSTMAST1.
    • Click on Create.
    • Enter a description of the project.
    • Save.
    • Click on SAP Enhancements.
    • Enter VSV00001 for Enhancement.
    • Save.
    Once youâve created the project, edit the function exit components and activate the project. Remember that the code in the function exit enhancement will execute only if the project is activated. In fact, this is a convenient SAP enhancements feature, whereby the work in progress (developing code in the customer function) will not affect users of that application. When the code is completed, the project can be activated so the enhanced functionality takes effect. It can also be deactivated for maintenance.
    As mentioned earlier, customer functions (function exits) are embedded in ALE function modules and can be used to influence the creation and modification of IDOC data on an outbound application or to post additional or modified IDOC data to an inbound R/3 application. Function exits are similar to regular function modules, with import/export parameters, tables (internal tables), and exceptions.
    The two important factors to consider while developing the customer function are:
    1. The point in the ALE function module where the function exit occurs
    2. The data made available by the customer function that can be modified or posted to the R/3 application, based on the direction.
    Because some function modules have several customer functions, it is critical to choose the function exit best suited for that particular enhancement. Do not attempt to perform activities that the function exit is not designed for. The importance of this point is illustrated by the following description of enhancing function modules for outbound and inbound ALE interfaces.
    Outbound interfaces. In an outbound ALE interface you use function exits (customer functions) to populate additional segments created by an IDOC extension or to modify the existing IDOC data segments as per business requirements. Previously, you identified that enhancement VSV00001 has a component EXIT_SAPLVV01_001 (function exit), which can be used for populating the additional data segment Z1SADRX that you created in the IDOC extension ZDEBMASX (IDOC type ZDEBMASZ, based on Basic IDOC type DEBMAS02). You also learned that the ALE function module that calls this function exit is MASTERIDOC_CREATE_DEBMAS, which has a statement Call Customer Function 001.
    Browse the function module MASTERIDOC_CREATE_DEBMAS using transaction SE37. You will find that this customer function is invoked for every segment of IDOC type DEBMAS02. In fact, the function exit is called soon after the creation of an existing segment has been populated with data and appended to the IDOC data table (internal table). Also, the function exit is exporting the message type, IDOC type, and the segment name and is importing the IDOC extension type. It is also passing the IDOC data internal table. This indicates that the ALE function module is allowing you to populate additional segments for every existing segment and modify the existing segmentâs data.
    Letâs write ABAP/4 code to accomplish the task of populating IDOC segment Z1SADRX with a contact personâs business address:
    • From SE37, display function module MASTERIDOC_CREATE_ DEBMAS.
    • Find Customer Function 001.
    • Double-click on 001.
    • The function EXIT_SAPLVV01_001 will be displayed.
    • Double-click on INCLUDE ZXVSVU01.
    • You will be asked to create a new include object. Proceed as desired.
    • Enter code (as in Listing 1).
    • Be sure to perform a main program check (Function Module -> Check -> main program) and extended program check (Function module -> Check -> Extended check).
    Now that you have extended the IDOC and enhanced the ALE function module based on the requirements for the contact personâs business address on the Customer Master, letâs test the interface. You should create a logical system and define a port for this interface. You should also configure the Customer Distribution Model to indicate that message type DEBMAS is being distributed to this logical system. The only difference in configuration between a regular outbound ALE interface and an enhanced one is the partner profile definition. While maintaining the outbound parameters of the partner profile, make sure the IDOC type is ZDEBMASZ. The fields for Basic IDOC type and extension type are automatically populated with DEBMAS02 and ZDEBMASX, respectively.
    To maintain the contact personâs business address of a customer:
    • Use transaction BD12 or from BALE go to Master Data ->Customer -> Send and send that Customer Master record by executing the transaction after filling in the relevant fields such as customer number, message type, and logical system.
    • Use transaction WE02 or WE05 to verify the IDOC created. You should see the new segment Z1SADRX populated with the correct data.
    With SAP releases below 4.5B, you cannot capture changes to business address through change pointers because a change document object is not available for capturing business address changes, and also earlier releases have not been configured to write change documents for a contact personâs business address. If you would like this functionality, you can either create change document objects, generate function modules to create change documents, and perform ALE configuration to tie it in, or make a cosmetic change to the contact person screen data while changing the contact personâs business address so that it gets captured as a change to the Customer Master. Subsequently, the ALE enhancement that you performed captures the contact personâs business address.
    Inbound interfaces. The process for enhancing inbound ALE interfaces is similar for outbound, with a few exceptions; specifically in the coding of customer functions (function exits) for the ALE/EDI function modules.
    The first step is to create an IDOC extension for the specific Basic IDOC type by adding new segments at the appropriate hierarchy level: that is, associated to the relevant existing segment. Populate the data fields on the new segments with application data by the translator or external system/program before importing them into the R/3 System. Then, find the ALE function module that is invoked by the inbound processing. By browsing through the code or reading the documentation on the function exit enhancements using the SMOD transaction, identify the function exit in which you should place your code. The technique used in the code to post the additional or modified IDOC data to the application can vary based on the application rules and requirements, the data available at that point in processing, and the application function modules available to update the application tables. It is important to search first for application modules that process the data and see if they can be called within the function exit. If the additional data in the extended segments in specific to a custom table or resides in nonkey fields of a single or small set of tables, you may be able to update it directly by SQL statements in the function exit. This approach should be carefully evaluated and is certainly not highly recommended.
    Another option is to use Call Transaction from within the function exit to process the additional data. For example, in the case of message type WMMBXY for inbound goods movements from a warehouse management system, the standard interface creates batches for materials, but does not update its characteristics. In such a case, you can use Call Transaction MSC1 to create the batch and assign characteristic values to it from within the function exit provided.
    regards,
    srinivas

  • Extended Idoc - User exit for delivery VL01 and Invoice VF01

    Hi Experts,
    We are developing Extended Idoc for order - cash cycle.The extended Idoc contains 4 extra fields.
    I want to know the User exits where i can populate the extended segment field values for VL01 and VF01 transactions.

    HI
    exits available for  VL01.
    VMDE0004                                Shipping Interface: Message SDPACK (Packing, Inbound)
    VMDE0003                                Shipping Interface: Message SDPICK (Picking, Inbound)
    VMDE0002                                Shipping Interface: Message PICKSD (Picking, Outbound)
    VMDE0001                                Shipping Interface: Error Handling - Inbound IDoc
    V53W0001                                User exits for creating picking waves
    V53C0002                                W&S: RWE enhancement - shipping material type/time slot
    V53C0001                                Rough workload calculation in time per item
    V50S0001                                User Exits for Delivery Processing
    V50R0004                                Calculation of Stock for POs for Shipping Due Date List
    V50R0002                                Collective processing for delivery creation
    V50R0001                                Collective processing for delivery creation
    V50Q0001                                Delivery Monitor: User Exits for Filling Display Fields
    V50PSTAT                                Delivery: Item Status Calculation
    V02V0004                                User Exit for Staging Area Determination (Item)
    V02V0003                                User exit for gate + matl staging area determination (headr)
    V02V0002                                User exit for storage location determination
    V02V0001                                Sales area determination for stock transport order
    For VF01..
    Enhancement
    V61A0001                                Customer enhancement: Pricing
    V60P0001                                Data provision for additional fields for display in lists
    V60A0001                                Customer functions in the billing document
    V05N0001                                User Exits for Printing Billing Docs. using POR Procedure
    V05I0001                                User exits for billing index
    SDVFX011                                Userexit for the komkcv- and kompcv-structures
    SDVFX010                                User exit item table for the customer lines
    SDVFX009                                Billing doc. processing KIDONO (payment reference number)
    SDVFX008                                User exit: Processing of transfer structures SD-FI
    SDVFX007                                User exit: Billing plan during transfer to Accounting
    SDVFX006                                User exit tax line in transfer to accounting
    SDVFX005                                User exit reserves in transfer to accounting
    SDVFX004                                User exit G/L line in transfer to accounting
    SDVFX003                                User exit cash clearing in transfer to accounting
    SDVFX002                                User exit for A/R line in transfer to accounting
    SDVFX001                                User exit header line in delivery to accounting
    J_3RSINV

  • Problem about extended IDOC(urgent)

    Hi experts,
    i have idoctype,extended idoc,and one include.. i need modify that according to the requirement.. here i will give the idoctype and extended idoc type and include program .. please help me where exactly i need to do the change and what are the steps required for the requirement..
    Exact Requirement: Modify the program which populates the idoctype invoice02 and extension zinvoice02 , if netvalue is zero(vbrp-netwr = 0) then populate the idoc segment E1EDP01.E1EDP26 , BETRG WITH QUALF = # 011' WITH ZERO VALUE. curently segment is not populated.
    Please help me in this and explain the steps required for this.
    idoctype:invoice02
    extended idoc:zinvoice02
    include:ZXEDFU02
                                   Here i am giving the include program
    CASE dobject-kschl.
      WHEN 'ZGRI' OR 'ZGDF' OR 'ZGRN' OR 'ZGAE'.
        t_int_edidd[] = int_edidd[].
        t_xtvbdpr[] = xtvbdpr[].
        ta_xvbdkr = xvbdkr.
        CASE int_edidd-segnam.
          WHEN 'E1EDK01'.
            ta_e1edk01 = int_edidd-sdata.
            PERFORM get_shipment_data.
            PERFORM get_route_data.
            int_edidd[] = t_int_edidd[].
          WHEN 'E1EDP01'.
    Update segment E1EDP01
    1. Update field E1EDP01-PSTYP
    2. Accumulated net weight & quantity of batch split items against
    E1EDP01 segment of the main invoice item.
            ta_e1edp01 = int_edidd-sdata.
            i_tabix = sy-tabix.
            CLEAR: ta_e1edp02.                                  "DIAG01+
            PERFORM update_segment_e1edp01.
            MOVE ta_e1edp01 TO t_int_edidd-sdata.
            MODIFY t_int_edidd INDEX i_tabix TRANSPORTING sdata.
    Populate segment Z1EDP08
    Fields: ZZDESPACTY_A, ZZACTYUOM
            PERFORM validate_segment USING control_record_out-idoctp
                                      control_record_out-cimtyp
                                      'Z1EDP08'
                                CHANGING n_subrc.
            CHECK n_subrc EQ 0.
            PERFORM calc_invoice_item_zzdespacty_a.             "DIAG02+
            int_edidd[] = t_int_edidd[].                        "DIAG02+
          WHEN 'E1EDP02'.                                       "DIAG01+
            IF int_edidd-sdata(3) = '016'.                      "DIAG01+
              ta_e1edp02 = int_edidd-sdata.                     "DIAG01+
            ENDIF.                                              "DIAG01+
          WHEN 'E1EDP19'.
    Populate segment Z1EDL24
    Fields: Material Characteristics or Material Class '001'.
            PERFORM validate_segment USING control_record_out-idoctp
                                     control_record_out-cimtyp
                                     'Z1EDL24'
                                     CHANGING n_subrc.
            IF n_subrc EQ 0.
              ta_e1edp19 = int_edidd-sdata.
              CASE ta_e1edp19-qualf.
                WHEN '002'.
                  PERFORM get_mat_characteristic USING ta_e1edp19-idtnr.
                  PERFORM fill_segment_z1edl24.
                  int_edidd[] = t_int_edidd[].
                WHEN OTHERS.
              ENDCASE.
            ENDIF.
          WHEN 'E1EDP26'.
    Populate segment E1EDP26
    Fields: BETRG
            i_tabix = sy-tabix.
            ta_e1edp26 = int_edidd-sdata.
           IF ta_e1edp26-qualf = '001'. "Gross Price which is always present
              PERFORM fill_segment_e1edp26.
              int_edidd[] = t_int_edidd[].
            ENDIF.
          WHEN 'E1EDP08'.
    Populate Segment Z1EDL37                                             *
    Fields: Bespoke fields from Handling Unit (VEKP)
            PERFORM validate_segment USING control_record_out-idoctp
                                      control_record_out-cimtyp
                                      'Z1EDL37'
                                CHANGING n_subrc.
            CHECK n_subrc EQ 0.
            ta_e1edp08 = int_edidd-sdata.
            PERFORM fill_segment_z1edl37.
    Populate Segment Z1EDP08                                             *
    Fields: Total Despatch Activity                                      *
           PERFORM validate_segment USING control_record_out-idoctp
                                     control_record_out-cimtyp
                                     'Z1EDP08'
                               CHANGING n_subrc.
           CHECK n_subrc EQ 0.
           PERFORM calc_invoice_item_acty_total.
            int_edidd[] = t_int_edidd[].
          WHEN OTHERS.
        ENDCASE.
      WHEN 'ZGDW'.
    Line above added line below removed - Assyst 73789
    WHEN 'ZGIN'.
        t_int_edidd[] = int_edidd[].
        t_xtvbdpr[] = xtvbdpr[].
        ta_xvbdkr = xvbdkr.
        CASE int_edidd-segnam.
    Start SU02
          WHEN 'E1EDK01'.
            ta_e1edk01 = int_edidd-sdata.
            i_tabix = sy-tabix.
    Get the conversion factor
            PERFORM modify_exchange_rate.
            MOVE ta_e1edk01 TO t_int_edidd-sdata.
            MODIFY t_int_edidd INDEX i_tabix TRANSPORTING sdata.
            int_edidd[] = t_int_edidd[].
    End SU02
    *************************************************************SAM01 START
          WHEN 'E1EDP02'.
    Populate segment Z1EDP02
    Fields: Reason code for sales order
            ta_e1edp02 = int_edidd-sdata.
            CASE ta_e1edp02-qualf.
              WHEN '002'.
                PERFORM fill_segment_z1edp02.
                PERFORM append_int_edidd TABLES t_int_edidd
                                         USING  'Z1EDP02'
                                                ta_z1edp02.
                int_edidd[] = t_int_edidd[].
              WHEN OTHERS.
            ENDCASE.
    ***************************************************************SAM01 END
        ENDCASE.
    Start of JvdM01
      WHEN 'ZGII'.                                              "JvdM01
        t_int_edidd[] = int_edidd[].
        t_xtvbdpr[] = xtvbdpr[].
        ta_xvbdkr = xvbdkr.
        CASE int_edidd-segnam.
          WHEN 'E1EDK01'.
    Populate segment Z1EDKSH and Z1REM_STE_CDE
    Fields: Shipment Number for Invoice
            Reason code for sales order
            ta_e1edk01 = int_edidd-sdata.
            PERFORM fill_segment_z1edksh_ds.
            PERFORM append_int_edidd TABLES t_int_edidd
                                     USING 'Z1EDKSH'
                                            ta_z1edksh.
            PERFORM fill_segment_z1rem_ste_cde.
            PERFORM append_int_edidd TABLES t_int_edidd
                                     USING  'Z1REM_STE_CDE'
                                            ta_z1rem_ste_cde.
            int_edidd[] = t_int_edidd[].
          WHEN 'E1EDKA1'.
    Populate segment Z1EDKA1
    Fields: Customer Account Group
            ta_e1edka1 = int_edidd-sdata.
            CASE ta_e1edka1-parvw.
              WHEN 'RE'.   "Bill To Party
                PERFORM fill_segment_z1edka1.
                PERFORM append_int_edidd TABLES t_int_edidd
                                         USING 'Z1EDKA1'
                                                ta_Z1EDKA1.
                int_edidd[] = t_int_edidd[].
            ENDCASE.
          WHEN 'E1EDP01'.
    Read segment E1EDP01 for use later                  "JVDM02
            ta_e1edp01 = int_edidd-sdata.
          WHEN 'E1EDP02'.
    Populate segment Z1EDP02
    Fields: Reason code for sales order
            ta_e1edp02 = int_edidd-sdata.
            CASE ta_e1edp02-qualf.
              WHEN '002'.
                PERFORM fill_segment_z1edp02.
                PERFORM append_int_edidd TABLES t_int_edidd
                                         USING  'Z1EDP02'
                                                ta_z1edp02.
                int_edidd[] = t_int_edidd[].
              WHEN OTHERS.
            ENDCASE.
          WHEN 'E1EDP19'.
    Populate segment Z1EDL24 and Z1EDP01                  "JVDM02
    Fields: Pack Size Activity for Material
            Total Activity for Invoice Item
            ta_e1edp19 = int_edidd-sdata.
            CASE ta_e1edp19-qualf.
              WHEN '002'.
                PERFORM fill_segm_z1edl24_and_z1edp01.
                PERFORM append_int_edidd TABLES t_int_edidd
                                         USING  'Z1EDL24'
                                                ta_z1edl24.
                PERFORM append_int_edidd TABLES t_int_edidd
                                         USING  'Z1EDP01'
                                                ta_z1edp01.
                int_edidd[] = t_int_edidd[].
              WHEN OTHERS.
            ENDCASE.
        ENDCASE.
    End JvdM01
    ENDCASE.
    Start SU02 Code Comment for implementing IR 340
    **mpc01 - start of insert
    start assyst 73789
    *IF dobject-kschl = 'ZGDW'."amersham invoices
    **IF dobject-kschl = 'ZGIN'."amersham invoices
    end assyst 73789
    CASE int_edidd-segnam.
      for the organisation data header
       WHEN 'E1EDK14'.
         MOVE int_edidd-sdata TO ta_e2edk14.
        where is qualifying organisation = 003 (delivering company code).
         IF ta_e2edk14-qualf = '003' AND ta_e2edk14-orgid NE space.
           SELECT SINGLE waers
             INTO t001-waers
             FROM t001
            WHERE bukrs = ta_e2edk14-orgid.
           IF sy-subrc = 0.
             t_int_edidd[] = int_edidd[].
            get the billing date for the invoice
             LOOP AT t_int_edidd WHERE segnam = 'E1EDK02'.
               MOVE t_int_edidd-sdata TO ta_e1edk02.
               IF ta_e1edk02-qualf = '009'."billing date
                 w_fkdat = ta_e1edk02-datum.
                 EXIT.
               ENDIF.
             ENDLOOP.
            if no invoice date use current date
             IF w_fkdat IS INITIAL.
               w_fkdat = sy-datum.
             ENDIF.
            change the general document header
             LOOP AT t_int_edidd WHERE segnam = 'E1EDK01'.
               i_tabix = sy-tabix.
               MOVE t_int_edidd-sdata TO ta_e1edk01.
              set the field to the default currency code for the company
               ta_e1edk01-hwaer = t001-waers.
              if the default value equals the idoc currency then exit
               IF t001-waers = ta_e1edk01-curcy.
                 EXIT.
               ENDIF.
              get the exchange rates
               SELECT *
                 INTO TABLE t_tcurr
                 FROM tcurr
                WHERE kurst = 'NYB1'                 " SU01
                 WHERE KURST = 'GEBU'                 " SU01
                  AND fcurr = ta_e1edk01-curcy
                  AND tcurr = t001-waers.
               IF sy-subrc NE 0."no values found
                error the idoc
                 MESSAGE e400(vf) WITH c_exchange_rate_error
                         RAISING error_message_received.
                 EXIT.
               ENDIF.
               LOOP AT t_tcurr.
                convert to date from inverted date to normal date format.
                 CALL FUNCTION 'CONVERSION_EXIT_INVDT_OUTPUT'
                      EXPORTING
                           input  = t_tcurr-gdatu
                      IMPORTING
                           output = w_datum.
                 CONCATENATE w_datum+6(4)
                             w_datum+3(2)
                             w_datum(2)
                        INTO t_tcurr-datum.
                 MODIFY t_tcurr.
               ENDLOOP.
              sort the exchange rates with the newest first.
               SORT t_tcurr BY datum DESCENDING.
              read the first value in the table ie the newest.
               LOOP AT t_tcurr WHERE datum <= w_fkdat.
                 EXIT.
               ENDLOOP.
               IF sy-subrc NE 0."no values found
                error the idoc
                 MESSAGE e400(vf) WITH c_exchange_rate_error
                         RAISING error_message_received.
                 EXIT.
               ENDIF.
    Start SU01
    Get the Exchange rate from the function module and populate
    E1EDK01 TABLE
               w_fcurr = ta_e1edk01-curcy.
               call function 'CONVERT_TO_LOCAL_CURRENCY'
                    exporting
                         date             = w_fkdat
                         foreign_amount   = '0'
                         foreign_currency = w_fcurr
                         local_currency   = t001-waers
                         type_of_rate     = 'GEBU'
                    importing
                         exchange_rate    = t_tcurr-ukurs
                    exceptions
                         no_rate_found    = 1
                         overflow         = 2
                         no_factors_found = 3
                         no_spread_found  = 4
                         derived_2_times  = 5
                         others           = 6.
    End SU01
               ta_e1edk01-wkurs = t_tcurr-ukurs.
              change the header data in segment
               MOVE ta_e1edk01 TO t_int_edidd-sdata.
              update the current idoc segment
               MODIFY t_int_edidd INDEX i_tabix TRANSPORTING sdata.
               EXIT.
             ENDLOOP.
            update all of the idoc segments
             int_edidd[] = t_int_edidd[].
           ENDIF.
         ENDIF.
    ENDCASE.
    *ENDIF.
    **mpc01 - end of insert
    End SU02 Code Comment for implementing IR 340

    Hi Venu,
      Try with this code.
      If vbrp-netwr = 0.
    <b>  WHEN 'E1EDP26.
      CASE ta_e1edp26-qualf.
    ta_e1edp26 = int_edidd-sdata.
    WHEN '011'.
    PERFORM append_int_edidd TABLES t_int_edidd
    USING 'e1edp26'
    ta_e1edp26.
    int_edidd[] = t_int_edidd[].
    ENDCASE.</b>
    ENDIF.
    Thanks
    Manju.

Maybe you are looking for

  • Desconto de imposto retido diretamente no financeiro

    Nossa empresa possui um benefício fiscal, referente a um projeto de governo pertinente a construção civil. Devido a isso, lançamos as notas fiscais de prestação de serviço, destacando o ISS, porém o mesmo não será pago devido a esse benefício. Nesse

  • Division of time periods

    I will be working with periods in time. Each period has a start and end date (along with other data..but for the help I need only the start/end are relevant). I have a list of default periods. The default periods are arranged perfectly so the start o

  • UPGRADING FROM ORIGINAL IPHONE. HELP HELP HELP HELP

    is it possible to upgrade from the original stainless steel 1st generation iPhone to the new iPhone3Gs.

  • Progress bar Fl cs3 as3.0

    below is my very simple code to load images from a instance of button component into an instance of UIloader component. there are multiple buttons like this one i can't get it... the way to get progress bar to listen and respond to the loading of the

  • ITunes library not valid?

    Ok, I think this is/was my problem all along(I posted a topic before asking for help).Once a week when I open my iTunes I get a message saying *iPod games does not appear to be a valid file, iTunes has created a new iTunes library and renamed this fi