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
-
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,
RamHi 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-
VarunHi 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.
thxWhy 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 dont 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,
SammHi,
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 -
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,
ShomaHi 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. -
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 SHi 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 -
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,
AnitaAnitha,
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. -
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
LuisHello 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 -
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 340Hi 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
-
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